diff --git a/Mage.Sets/src/mage/cards/a/AngelsTomb.java b/Mage.Sets/src/mage/cards/a/AngelsTomb.java index 61720dc68c..c9a1daa44d 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsTomb.java +++ b/Mage.Sets/src/mage/cards/a/AngelsTomb.java @@ -29,7 +29,7 @@ public final class AngelsTomb extends CardImpl { .withColor("W") .withSubType(SubType.ANGEL) .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"); this.addAbility(new EntersBattlefieldControlledTriggeredAbility( Zone.BATTLEFIELD, @@ -47,4 +47,4 @@ public final class AngelsTomb extends CardImpl { public AngelsTomb copy() { return new AngelsTomb(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/a/AnsweredPrayers.java b/Mage.Sets/src/mage/cards/a/AnsweredPrayers.java index 2ecac4c223..632872c309 100644 --- a/Mage.Sets/src/mage/cards/a/AnsweredPrayers.java +++ b/Mage.Sets/src/mage/cards/a/AnsweredPrayers.java @@ -72,7 +72,7 @@ class AnsweredPrayersEffect extends OneShotEffect { return true; } game.addEffect(new BecomesCreatureSourceEffect( - new AnsweredPrayersToken(), "enchantment", Duration.EndOfTurn + new AnsweredPrayersToken(), CardType.ENCHANTMENT, Duration.EndOfTurn ), source); return true; } diff --git a/Mage.Sets/src/mage/cards/a/AtarkaMonument.java b/Mage.Sets/src/mage/cards/a/AtarkaMonument.java index c28b376079..7740062c8a 100644 --- a/Mage.Sets/src/mage/cards/a/AtarkaMonument.java +++ b/Mage.Sets/src/mage/cards/a/AtarkaMonument.java @@ -36,7 +36,7 @@ public final class AtarkaMonument extends CardImpl { .withSubType(SubType.DRAGON) .withType(CardType.ARTIFACT) .withAbility(FlyingAbility.getInstance()), - "", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{R}{G}"))); + CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{R}{G}"))); } private AtarkaMonument(final AtarkaMonument card) { diff --git a/Mage.Sets/src/mage/cards/a/AzoriusKeyrune.java b/Mage.Sets/src/mage/cards/a/AzoriusKeyrune.java index eae14707ac..e54e8ac354 100644 --- a/Mage.Sets/src/mage/cards/a/AzoriusKeyrune.java +++ b/Mage.Sets/src/mage/cards/a/AzoriusKeyrune.java @@ -36,7 +36,7 @@ public final class AzoriusKeyrune extends CardImpl { .withSubType(SubType.BIRD) .withType(CardType.ARTIFACT) .withAbility(FlyingAbility.getInstance()), - "", Duration.EndOfTurn), new ManaCostsImpl<>("{W}{U}"))); + CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{W}{U}"))); } private AzoriusKeyrune(final AzoriusKeyrune card) { diff --git a/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java b/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java index 44b1e920c1..91ccfed2b0 100644 --- a/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java +++ b/Mage.Sets/src/mage/cards/b/BlinkmothNexus.java @@ -45,7 +45,7 @@ public final class BlinkmothNexus extends CardImpl { .withSubType(SubType.BLINKMOTH) .withType(CardType.ARTIFACT) .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. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/cards/b/BogardanDragonheart.java b/Mage.Sets/src/mage/cards/b/BogardanDragonheart.java index db2100ce98..6f77171db6 100644 --- a/Mage.Sets/src/mage/cards/b/BogardanDragonheart.java +++ b/Mage.Sets/src/mage/cards/b/BogardanDragonheart.java @@ -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. 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)))); } diff --git a/Mage.Sets/src/mage/cards/b/BorosKeyrune.java b/Mage.Sets/src/mage/cards/b/BorosKeyrune.java index e6d5e297d8..27f55dcb40 100644 --- a/Mage.Sets/src/mage/cards/b/BorosKeyrune.java +++ b/Mage.Sets/src/mage/cards/b/BorosKeyrune.java @@ -36,7 +36,7 @@ public final class BorosKeyrune extends CardImpl { .withSubType(SubType.SOLDIER) .withType(CardType.ARTIFACT) .withAbility(DoubleStrikeAbility.getInstance()), - "", Duration.EndOfTurn), new ManaCostsImpl<>("{R}{W}"))); + CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{R}{W}"))); } private BorosKeyrune(final BorosKeyrune card) { diff --git a/Mage.Sets/src/mage/cards/c/CaveOfTheFrostDragon.java b/Mage.Sets/src/mage/cards/c/CaveOfTheFrostDragon.java index 0fad44c724..213a0862cc 100644 --- a/Mage.Sets/src/mage/cards/c/CaveOfTheFrostDragon.java +++ b/Mage.Sets/src/mage/cards/c/CaveOfTheFrostDragon.java @@ -49,7 +49,7 @@ public final class CaveOfTheFrostDragon extends CardImpl { .withColor("W") .withSubType(SubType.DRAGON) .withAbility(FlyingAbility.getInstance()), - "land", Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}"))); + CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}"))); } private CaveOfTheFrostDragon(final CaveOfTheFrostDragon card) { diff --git a/Mage.Sets/src/mage/cards/c/CelestialColonnade.java b/Mage.Sets/src/mage/cards/c/CelestialColonnade.java index 3b542c6f04..1183bf9599 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialColonnade.java +++ b/Mage.Sets/src/mage/cards/c/CelestialColonnade.java @@ -41,7 +41,7 @@ public final class CelestialColonnade extends CardImpl { .withSubType(SubType.ELEMENTAL) .withAbility(FlyingAbility.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) { diff --git a/Mage.Sets/src/mage/cards/c/ChimericEgg.java b/Mage.Sets/src/mage/cards/c/ChimericEgg.java index 9359504e55..23dfe6018f 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericEgg.java +++ b/Mage.Sets/src/mage/cards/c/ChimericEgg.java @@ -45,7 +45,7 @@ public final class ChimericEgg extends CardImpl { .withSubType(SubType.CONSTRUCT) .withType(CardType.ARTIFACT) .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) { diff --git a/Mage.Sets/src/mage/cards/c/ChimericIdol.java b/Mage.Sets/src/mage/cards/c/ChimericIdol.java index a57181ab97..bbc8473dea 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericIdol.java +++ b/Mage.Sets/src/mage/cards/c/ChimericIdol.java @@ -31,7 +31,7 @@ public final class ChimericIdol extends CardImpl { new CreatureToken(3, 3, "3/3 Turtle artifact creature") .withSubType(SubType.TURTLE) .withType(CardType.ARTIFACT), - "", Duration.EndOfTurn)); + CardType.ARTIFACT, Duration.EndOfTurn)); this.addAbility(ability); } @@ -44,4 +44,4 @@ public final class ChimericIdol extends CardImpl { public ChimericIdol copy() { return new ChimericIdol(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/c/ChimericMass.java b/Mage.Sets/src/mage/cards/c/ChimericMass.java index b1cc5fc7ed..0804fe8f73 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericMass.java +++ b/Mage.Sets/src/mage/cards/c/ChimericMass.java @@ -38,7 +38,7 @@ public final class ChimericMass extends CardImpl { .withType(CardType.ARTIFACT) .withSubType(SubType.CONSTRUCT) .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) { diff --git a/Mage.Sets/src/mage/cards/c/ChimericSphere.java b/Mage.Sets/src/mage/cards/c/ChimericSphere.java index cd30f79534..a47222703d 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericSphere.java +++ b/Mage.Sets/src/mage/cards/c/ChimericSphere.java @@ -29,14 +29,14 @@ public final class ChimericSphere extends CardImpl { .withSubType(SubType.CONSTRUCT) .withType(CardType.ARTIFACT) .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. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect( new CreatureToken(3, 2, "3/2 Construct artifact creature and loses flying") .withSubType(SubType.CONSTRUCT) .withType(CardType.ARTIFACT), - "", Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{2}"))); + CardType.ARTIFACT, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{2}"))); } private ChimericSphere(final ChimericSphere card) { diff --git a/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java b/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java index fcd121d5f3..4f82df638b 100644 --- a/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java +++ b/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java @@ -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. Ability ability = new SimpleActivatedAbility( new BecomesCreatureSourceEffect( - new ChromiumTheMutableToken(), null, Duration.EndOfTurn + new ChromiumTheMutableToken(), CardType.CREATURE, Duration.EndOfTurn ).andLoseAbilities(true).setText("Until end of turn, {this} becomes " + "a Human with base power and toughness 1/1, " + "loses all abilities, and gains hexproof"), diff --git a/Mage.Sets/src/mage/cards/c/ChronatogTotem.java b/Mage.Sets/src/mage/cards/c/ChronatogTotem.java index df6e128c14..2913e64980 100644 --- a/Mage.Sets/src/mage/cards/c/ChronatogTotem.java +++ b/Mage.Sets/src/mage/cards/c/ChronatogTotem.java @@ -39,7 +39,7 @@ public final class ChronatogTotem extends CardImpl { .withColor("U") .withSubType(SubType.ATOG) .withType(CardType.ARTIFACT), - "", Duration.EndOfTurn + CardType.ARTIFACT, Duration.EndOfTurn ), 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. diff --git a/Mage.Sets/src/mage/cards/c/CrawlingBarrens.java b/Mage.Sets/src/mage/cards/c/CrawlingBarrens.java index fb547baea4..1c8bd0c890 100644 --- a/Mage.Sets/src/mage/cards/c/CrawlingBarrens.java +++ b/Mage.Sets/src/mage/cards/c/CrawlingBarrens.java @@ -73,7 +73,7 @@ class CrawlingBarrensEffect extends OneShotEffect { } game.addEffect(new BecomesCreatureSourceEffect(new CreatureToken( 0, 0, "0/0 Elemental creature" - ).withSubType(SubType.ELEMENTAL), "land", Duration.EndOfTurn), source); + ).withSubType(SubType.ELEMENTAL), CardType.LAND, Duration.EndOfTurn), source); return true; } } diff --git a/Mage.Sets/src/mage/cards/c/CreepingTarPit.java b/Mage.Sets/src/mage/cards/c/CreepingTarPit.java index 6a9ac9bc5b..9eb3690be9 100644 --- a/Mage.Sets/src/mage/cards/c/CreepingTarPit.java +++ b/Mage.Sets/src/mage/cards/c/CreepingTarPit.java @@ -40,7 +40,7 @@ public final class CreepingTarPit extends CardImpl { .withColor("BU") .withSubType(SubType.ELEMENTAL) .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"), new ManaCostsImpl<>("{1}{U}{B}"))); } diff --git a/Mage.Sets/src/mage/cards/d/DarksteelBrute.java b/Mage.Sets/src/mage/cards/d/DarksteelBrute.java index 07f46c5e7c..5aafea9303 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelBrute.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelBrute.java @@ -32,7 +32,7 @@ public final class DarksteelBrute extends CardImpl { new CreatureToken(2, 2, "2/2 Beast artifact creature") .withSubType(SubType.BEAST) .withType(CardType.ARTIFACT), - "", Duration.EndOfTurn), new GenericManaCost(3))); + CardType.ARTIFACT, Duration.EndOfTurn), new GenericManaCost(3))); } private DarksteelBrute(final DarksteelBrute card) { @@ -44,4 +44,4 @@ public final class DarksteelBrute extends CardImpl { return new DarksteelBrute(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/d/DaxossTorment.java b/Mage.Sets/src/mage/cards/d/DaxossTorment.java index 703a59c3b1..aee3235f51 100644 --- a/Mage.Sets/src/mage/cards/d/DaxossTorment.java +++ b/Mage.Sets/src/mage/cards/d/DaxossTorment.java @@ -28,7 +28,7 @@ public final class DaxossTorment extends CardImpl { .withSubType(SubType.DEMON) .withAbility(FlyingAbility.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"))); } diff --git a/Mage.Sets/src/mage/cards/d/DenOfTheBugbear.java b/Mage.Sets/src/mage/cards/d/DenOfTheBugbear.java index 2a98741a86..2e47f997b1 100644 --- a/Mage.Sets/src/mage/cards/d/DenOfTheBugbear.java +++ b/Mage.Sets/src/mage/cards/d/DenOfTheBugbear.java @@ -57,7 +57,7 @@ public final class DenOfTheBugbear extends CardImpl { .withColor("R") .withSubType(SubType.GOBLIN) .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) { diff --git a/Mage.Sets/src/mage/cards/d/DimirKeyrune.java b/Mage.Sets/src/mage/cards/d/DimirKeyrune.java index 3ac5c741dd..53fa6baf5e 100644 --- a/Mage.Sets/src/mage/cards/d/DimirKeyrune.java +++ b/Mage.Sets/src/mage/cards/d/DimirKeyrune.java @@ -35,7 +35,7 @@ public final class DimirKeyrune extends CardImpl { .withColor("UB") .withSubType(SubType.HORROR) .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) { diff --git a/Mage.Sets/src/mage/cards/d/DireMimic.java b/Mage.Sets/src/mage/cards/d/DireMimic.java index dd4b6e5253..d8b647106e 100644 --- a/Mage.Sets/src/mage/cards/d/DireMimic.java +++ b/Mage.Sets/src/mage/cards/d/DireMimic.java @@ -39,7 +39,7 @@ public final class DireMimic extends CardImpl { new CreatureToken( 5, 5, "Shapeshifter artifact creature " + "with base power and toughness 5/5", SubType.SHAPESHIFTER - ).withType(CardType.ARTIFACT), "", Duration.EndOfTurn + ).withType(CardType.ARTIFACT), CardType.ARTIFACT, Duration.EndOfTurn ), new GenericManaCost(3))); } diff --git a/Mage.Sets/src/mage/cards/d/DreadStatuary.java b/Mage.Sets/src/mage/cards/d/DreadStatuary.java index 0cca17916f..4e004babcd 100644 --- a/Mage.Sets/src/mage/cards/d/DreadStatuary.java +++ b/Mage.Sets/src/mage/cards/d/DreadStatuary.java @@ -25,7 +25,7 @@ public final class DreadStatuary extends CardImpl { public DreadStatuary(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},null); 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) { diff --git a/Mage.Sets/src/mage/cards/d/DromokaMonument.java b/Mage.Sets/src/mage/cards/d/DromokaMonument.java index 39b2e7ca41..fa49ad442b 100644 --- a/Mage.Sets/src/mage/cards/d/DromokaMonument.java +++ b/Mage.Sets/src/mage/cards/d/DromokaMonument.java @@ -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. 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) { @@ -44,7 +44,7 @@ public final class DromokaMonument extends CardImpl { return new DromokaMonument(this); } - private class DromokaMonumentToken extends TokenImpl { + private static class DromokaMonumentToken extends TokenImpl { DromokaMonumentToken() { super("", "4/4 green and white Dragon artifact creature with flying"); cardType.add(CardType.ARTIFACT); diff --git a/Mage.Sets/src/mage/cards/e/EbonyFly.java b/Mage.Sets/src/mage/cards/e/EbonyFly.java index 96747be164..8d3166dbfa 100644 --- a/Mage.Sets/src/mage/cards/e/EbonyFly.java +++ b/Mage.Sets/src/mage/cards/e/EbonyFly.java @@ -103,7 +103,7 @@ class EbonyFlyEffect extends OneShotEffect { new CreatureToken(result, result) .withType(CardType.ARTIFACT) .withAbility(FlyingAbility.getInstance()), - "", Duration.EndOfTurn + CardType.ARTIFACT, Duration.EndOfTurn ), source); return true; } diff --git a/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java b/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java index 3632e3227c..5a9264c97a 100644 --- a/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java +++ b/Mage.Sets/src/mage/cards/e/EnsouledScimitar.java @@ -30,7 +30,7 @@ public final class EnsouledScimitar extends CardImpl { this.subtype.add(SubType.EQUIPMENT); // {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. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 5))); // Equip {2} @@ -65,4 +65,4 @@ class EnsouledScimitarToken extends TokenImpl { public EnsouledScimitarToken copy() { return new EnsouledScimitarToken(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/e/EyeOfMalcator.java b/Mage.Sets/src/mage/cards/e/EyeOfMalcator.java index 5bb26a3436..e1a1f9bac9 100644 --- a/Mage.Sets/src/mage/cards/e/EyeOfMalcator.java +++ b/Mage.Sets/src/mage/cards/e/EyeOfMalcator.java @@ -28,7 +28,7 @@ public class EyeOfMalcator extends CardImpl { new BecomesCreatureSourceEffect( new CreatureToken( 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"), StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT ).setTriggerPhrase("Whenever another artifact enters the battlefield under your control, ")); diff --git a/Mage.Sets/src/mage/cards/f/FacelessHaven.java b/Mage.Sets/src/mage/cards/f/FacelessHaven.java index 04cd2c28b0..51964fb358 100644 --- a/Mage.Sets/src/mage/cards/f/FacelessHaven.java +++ b/Mage.Sets/src/mage/cards/f/FacelessHaven.java @@ -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. 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}"))); } diff --git a/Mage.Sets/src/mage/cards/f/FaerieConclave.java b/Mage.Sets/src/mage/cards/f/FaerieConclave.java index 053d0fb308..d931757b7b 100644 --- a/Mage.Sets/src/mage/cards/f/FaerieConclave.java +++ b/Mage.Sets/src/mage/cards/f/FaerieConclave.java @@ -27,7 +27,7 @@ public final class FaerieConclave extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); this.addAbility(new EntersBattlefieldTappedAbility()); 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) { diff --git a/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java b/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java index 72d45bf67b..5aecca7269 100644 --- a/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java +++ b/Mage.Sets/src/mage/cards/f/ForbiddingWatchtower.java @@ -32,7 +32,7 @@ public final class ForbiddingWatchtower extends CardImpl { this.addAbility(new WhiteManaAbility()); // {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) { diff --git a/Mage.Sets/src/mage/cards/f/ForiysianTotem.java b/Mage.Sets/src/mage/cards/f/ForiysianTotem.java index 4204c3ac67..e0f7ed5fef 100644 --- a/Mage.Sets/src/mage/cards/f/ForiysianTotem.java +++ b/Mage.Sets/src/mage/cards/f/ForiysianTotem.java @@ -36,7 +36,7 @@ public final class ForiysianTotem extends CardImpl { this.addAbility(new RedManaAbility()); // {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. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new CanBlockAdditionalCreatureEffect(1), new SourceMatchesFilterCondition(new FilterCreaturePermanent()), ruleText))); diff --git a/Mage.Sets/src/mage/cards/f/FountainOfIchor.java b/Mage.Sets/src/mage/cards/f/FountainOfIchor.java index 0fee79a11c..c5f0e2b600 100644 --- a/Mage.Sets/src/mage/cards/f/FountainOfIchor.java +++ b/Mage.Sets/src/mage/cards/f/FountainOfIchor.java @@ -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. this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect( - new FountainOfIchorToken(), "", Duration.EndOfTurn + new FountainOfIchorToken(), CardType.ARTIFACT, Duration.EndOfTurn ), new GenericManaCost(3))); } diff --git a/Mage.Sets/src/mage/cards/f/FrostwalkBastion.java b/Mage.Sets/src/mage/cards/f/FrostwalkBastion.java index c83f268062..a3fec0ebe9 100644 --- a/Mage.Sets/src/mage/cards/f/FrostwalkBastion.java +++ b/Mage.Sets/src/mage/cards/f/FrostwalkBastion.java @@ -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. this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect( - new FrostwalkBastionToken(), "land", Duration.EndOfTurn + new FrostwalkBastionToken(), CardType.LAND, Duration.EndOfTurn ).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. diff --git a/Mage.Sets/src/mage/cards/g/GhituEncampment.java b/Mage.Sets/src/mage/cards/g/GhituEncampment.java index 59072f1bf1..a04d31f084 100644 --- a/Mage.Sets/src/mage/cards/g/GhituEncampment.java +++ b/Mage.Sets/src/mage/cards/g/GhituEncampment.java @@ -29,7 +29,7 @@ public final class GhituEncampment extends CardImpl { this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new RedManaAbility()); 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}"))); } diff --git a/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java b/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java index 72250d25d2..e390fecaaa 100644 --- a/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java +++ b/Mage.Sets/src/mage/cards/g/GideonAllyOfZendikar.java @@ -34,7 +34,7 @@ public final class GideonAllyOfZendikar extends CardImpl { 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. - 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.setText("Prevent all damage that would be dealt to him this turn"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/g/GideonBattleForged.java b/Mage.Sets/src/mage/cards/g/GideonBattleForged.java index 493949eb57..145c57b252 100644 --- a/Mage.Sets/src/mage/cards/g/GideonBattleForged.java +++ b/Mage.Sets/src/mage/cards/g/GideonBattleForged.java @@ -60,7 +60,7 @@ public final class GideonBattleForged extends CardImpl { 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. - 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.setText("Prevent all damage that would be dealt to him this turn"); ability3.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/g/GideonBlackblade.java b/Mage.Sets/src/mage/cards/g/GideonBlackblade.java index d7ef3abaa4..bbc27a9d3f 100644 --- a/Mage.Sets/src/mage/cards/g/GideonBlackblade.java +++ b/Mage.Sets/src/mage/cards/g/GideonBlackblade.java @@ -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. this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( new BecomesCreatureSourceEffect( - new GideonBlackbladeToken(), "planeswalker", Duration.WhileOnBattlefield + new GideonBlackbladeToken(), CardType.PLANESWALKER, Duration.WhileOnBattlefield ), MyTurnCondition.instance, "As long as it's your turn, " + "{this} is a 4/4 Human Soldier creature with indestructible that's still a planeswalker." )).addHint(MyTurnHint.instance)); @@ -165,4 +165,4 @@ class GideonBlackbladeEffect extends OneShotEffect { } return true; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/g/GideonChampionOfJustice.java b/Mage.Sets/src/mage/cards/g/GideonChampionOfJustice.java index a98a12c624..caf04273eb 100644 --- a/Mage.Sets/src/mage/cards/g/GideonChampionOfJustice.java +++ b/Mage.Sets/src/mage/cards/g/GideonChampionOfJustice.java @@ -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. LockedInDynamicValue loyaltyCount = new LockedInDynamicValue(new CountersSourceCount(CounterType.LOYALTY)); 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); ability2.addEffect(new PreventAllDamageToSourceEffect(Duration.EndOfTurn).setText("prevent all damage that would be dealt to him this turn")); this.addAbility(ability2); diff --git a/Mage.Sets/src/mage/cards/g/GideonJura.java b/Mage.Sets/src/mage/cards/g/GideonJura.java index 9e07c52109..e59e8fd432 100644 --- a/Mage.Sets/src/mage/cards/g/GideonJura.java +++ b/Mage.Sets/src/mage/cards/g/GideonJura.java @@ -51,7 +51,7 @@ public final class GideonJura extends CardImpl { 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. - 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.setText("Prevent all damage that would be dealt to him this turn"); ability3.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/g/GideonMartialParagon.java b/Mage.Sets/src/mage/cards/g/GideonMartialParagon.java index 22ccb2fdcd..441f7370a6 100644 --- a/Mage.Sets/src/mage/cards/g/GideonMartialParagon.java +++ b/Mage.Sets/src/mage/cards/g/GideonMartialParagon.java @@ -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. // 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.setText("Prevent all damage that would be dealt to him this turn"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/g/GideonOfTheTrials.java b/Mage.Sets/src/mage/cards/g/GideonOfTheTrials.java index db67c1d3b1..bd6bc8a7fb 100644 --- a/Mage.Sets/src/mage/cards/g/GideonOfTheTrials.java +++ b/Mage.Sets/src/mage/cards/g/GideonOfTheTrials.java @@ -42,7 +42,7 @@ public final class GideonOfTheTrials extends CardImpl { 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. - 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.setText("Prevent all damage that would be dealt to him this turn"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/g/GideonTheOathsworn.java b/Mage.Sets/src/mage/cards/g/GideonTheOathsworn.java index 2a582f8d31..4c5f347d4d 100644 --- a/Mage.Sets/src/mage/cards/g/GideonTheOathsworn.java +++ b/Mage.Sets/src/mage/cards/g/GideonTheOathsworn.java @@ -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. Ability ability = new LoyaltyAbility(new BecomesCreatureSourceEffect( - new GideonTheOathswornToken(), "planeswalker", Duration.EndOfTurn + new GideonTheOathswornToken(), CardType.PLANESWALKER, Duration.EndOfTurn ), 2); ability.addEffect(new PreventAllDamageToSourceEffect( Duration.EndOfTurn diff --git a/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java b/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java index 28f124f167..afcdf3ecd8 100644 --- a/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java +++ b/Mage.Sets/src/mage/cards/g/GlintHawkIdol.java @@ -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. 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. - 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) { diff --git a/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java b/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java index c98f536004..d3755693c9 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java +++ b/Mage.Sets/src/mage/cards/g/GolgariKeyrune.java @@ -30,7 +30,7 @@ public final class GolgariKeyrune extends CardImpl { this.addAbility(new GreenManaAbility()); // {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) { diff --git a/Mage.Sets/src/mage/cards/g/GruulKeyrune.java b/Mage.Sets/src/mage/cards/g/GruulKeyrune.java index bbfdeac8e3..152792de41 100644 --- a/Mage.Sets/src/mage/cards/g/GruulKeyrune.java +++ b/Mage.Sets/src/mage/cards/g/GruulKeyrune.java @@ -31,7 +31,7 @@ public final class GruulKeyrune extends CardImpl { this.addAbility(new GreenManaAbility()); // {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) { diff --git a/Mage.Sets/src/mage/cards/g/GruulWarPlow.java b/Mage.Sets/src/mage/cards/g/GruulWarPlow.java index 652e895061..ed875f6b99 100644 --- a/Mage.Sets/src/mage/cards/g/GruulWarPlow.java +++ b/Mage.Sets/src/mage/cards/g/GruulWarPlow.java @@ -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))); // {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) { diff --git a/Mage.Sets/src/mage/cards/g/GuardianIdol.java b/Mage.Sets/src/mage/cards/g/GuardianIdol.java index f59cce810c..7fb048cc6d 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianIdol.java +++ b/Mage.Sets/src/mage/cards/g/GuardianIdol.java @@ -30,7 +30,7 @@ public final class GuardianIdol extends CardImpl { // {tap}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {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) { diff --git a/Mage.Sets/src/mage/cards/h/HalcyonGlaze.java b/Mage.Sets/src/mage/cards/h/HalcyonGlaze.java index 69a3470311..6ad47f1b6e 100644 --- a/Mage.Sets/src/mage/cards/h/HalcyonGlaze.java +++ b/Mage.Sets/src/mage/cards/h/HalcyonGlaze.java @@ -25,7 +25,7 @@ public final class HalcyonGlaze extends CardImpl { 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. - Effect effect = new BecomesCreatureSourceEffect(new HalcyonGlazeToken(), "enchantment", Duration.EndOfTurn); + Effect effect = new BecomesCreatureSourceEffect(new HalcyonGlazeToken(), CardType.ENCHANTMENT, Duration.EndOfTurn); effect.setText("{this} becomes a 4/4 Illusion creature with flying in addition to its other types until end of turn"); this.addAbility(new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_CREATURE, false)); } diff --git a/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java b/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java index 49ef4ba26a..8c23f7bf67 100644 --- a/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java +++ b/Mage.Sets/src/mage/cards/h/HallOfStormGiants.java @@ -50,7 +50,7 @@ public final class HallOfStormGiants extends CardImpl { .withColor("U") .withSubType(SubType.GIANT) .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}. " + "It's still a land. " + "(Whenever it becomes the target of a spell or ability an opponent controls, " + diff --git a/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java b/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java index 0d27d83f97..af1820c275 100644 --- a/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java +++ b/Mage.Sets/src/mage/cards/h/HauntedPlateMail.java @@ -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. Ability ability = new ConditionalActivatedAbility( Zone.BATTLEFIELD, - new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), "", Duration.EndOfTurn), + new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{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."); diff --git a/Mage.Sets/src/mage/cards/h/HiddenAncients.java b/Mage.Sets/src/mage/cards/h/HiddenAncients.java index 4ca9f3a126..0601b12321 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenAncients.java +++ b/Mage.Sets/src/mage/cards/h/HiddenAncients.java @@ -35,7 +35,7 @@ public final class HiddenAncients extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenAncientsTreefolkToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenAncientsTreefolkToken(), null, Duration.WhileOnBattlefield), filter, false); 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.")); diff --git a/Mage.Sets/src/mage/cards/h/HiddenGibbons.java b/Mage.Sets/src/mage/cards/h/HiddenGibbons.java index a1b3c8fce1..b3bb2634a2 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenGibbons.java +++ b/Mage.Sets/src/mage/cards/h/HiddenGibbons.java @@ -35,7 +35,7 @@ public final class HiddenGibbons extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGibbonsApe(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGibbonsApe(), null, Duration.WhileOnBattlefield), filter, false); 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.")); diff --git a/Mage.Sets/src/mage/cards/h/HiddenGuerrillas.java b/Mage.Sets/src/mage/cards/h/HiddenGuerrillas.java index 15a3d3ca61..ff0c86a682 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenGuerrillas.java +++ b/Mage.Sets/src/mage/cards/h/HiddenGuerrillas.java @@ -30,7 +30,7 @@ public final class HiddenGuerrillas extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGuerrillasSoldier(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenGuerrillasSoldier(), null, Duration.WhileOnBattlefield), new FilterArtifactSpell(), false); 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.")); diff --git a/Mage.Sets/src/mage/cards/h/HiddenHerd.java b/Mage.Sets/src/mage/cards/h/HiddenHerd.java index 641c0da28d..afa2dc7eac 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenHerd.java +++ b/Mage.Sets/src/mage/cards/h/HiddenHerd.java @@ -12,7 +12,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.constants.SuperType; import mage.constants.Zone; import mage.filter.StaticFilters; import mage.game.Game; @@ -50,7 +49,7 @@ public final class HiddenHerd extends CardImpl { class HiddenHerdAbility extends TriggeredAbilityImpl { 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) { diff --git a/Mage.Sets/src/mage/cards/h/HiddenPredators.java b/Mage.Sets/src/mage/cards/h/HiddenPredators.java index 136c3f85c4..5afe5ffbac 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenPredators.java +++ b/Mage.Sets/src/mage/cards/h/HiddenPredators.java @@ -46,7 +46,7 @@ class HiddenPredatorsStateTriggeredAbility extends StateTriggeredAbility { } 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, "); } diff --git a/Mage.Sets/src/mage/cards/h/HiddenSpider.java b/Mage.Sets/src/mage/cards/h/HiddenSpider.java index d1e5fdc2eb..9afe175bd4 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenSpider.java +++ b/Mage.Sets/src/mage/cards/h/HiddenSpider.java @@ -38,7 +38,7 @@ public final class HiddenSpider extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenSpiderToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new HiddenSpiderToken(), null, Duration.WhileOnBattlefield), filter, false); 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.")); diff --git a/Mage.Sets/src/mage/cards/h/HiddenStag.java b/Mage.Sets/src/mage/cards/h/HiddenStag.java index 94ffd35173..204ed7a4b7 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenStag.java +++ b/Mage.Sets/src/mage/cards/h/HiddenStag.java @@ -29,7 +29,7 @@ public final class HiddenStag extends CardImpl { 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. - 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); 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.")); diff --git a/Mage.Sets/src/mage/cards/h/HissingQuagmire.java b/Mage.Sets/src/mage/cards/h/HissingQuagmire.java index 4400408822..a91bc6874b 100644 --- a/Mage.Sets/src/mage/cards/h/HissingQuagmire.java +++ b/Mage.Sets/src/mage/cards/h/HissingQuagmire.java @@ -36,7 +36,7 @@ public final class HissingQuagmire extends CardImpl { 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. - 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"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{B}{G}"))); } diff --git a/Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java b/Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java index 28885b1e90..cb023282d4 100644 --- a/Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java +++ b/Mage.Sets/src/mage/cards/h/HiveOfTheEyeTyrant.java @@ -63,7 +63,7 @@ public final class HiveOfTheEyeTyrant extends CardImpl { 3, 3, "3/3 black Beholder creature with menace and " + "\"Whenever this creature attacks, exile target card from defending player's graveyard.\"" ).withSubType(SubType.BEHOLDER).withColor("B").withAbility(new MenaceAbility()).withAbility(ability), - "land", Duration.EndOfTurn + CardType.LAND, Duration.EndOfTurn ).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{B}"))); } diff --git a/Mage.Sets/src/mage/cards/h/HostileDesert.java b/Mage.Sets/src/mage/cards/h/HostileDesert.java index e9fdac7471..92d648b887 100644 --- a/Mage.Sets/src/mage/cards/h/HostileDesert.java +++ b/Mage.Sets/src/mage/cards/h/HostileDesert.java @@ -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. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect( 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")))); addAbility(ability); } @@ -47,4 +47,4 @@ public final class HostileDesert extends CardImpl { public HostileDesert copy() { return new HostileDesert(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/i/InkmothNexus.java b/Mage.Sets/src/mage/cards/i/InkmothNexus.java index ba181f82ad..47e555fb91 100644 --- a/Mage.Sets/src/mage/cards/i/InkmothNexus.java +++ b/Mage.Sets/src/mage/cards/i/InkmothNexus.java @@ -32,7 +32,7 @@ public final class InkmothNexus extends CardImpl { 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.) - 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. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1))); } diff --git a/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java b/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java index f9b8fa48d7..008536b63d 100644 --- a/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java +++ b/Mage.Sets/src/mage/cards/i/IzzetKeyrune.java @@ -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. this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect( - new IzzetKeyruneToken(), "", Duration.EndOfTurn + new IzzetKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn ).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. diff --git a/Mage.Sets/src/mage/cards/j/JadeIdol.java b/Mage.Sets/src/mage/cards/j/JadeIdol.java index 0d707a3876..1721604ddd 100644 --- a/Mage.Sets/src/mage/cards/j/JadeIdol.java +++ b/Mage.Sets/src/mage/cards/j/JadeIdol.java @@ -21,7 +21,7 @@ public final class JadeIdol extends CardImpl { public JadeIdol(UUID ownerId, CardSetInfo setInfo) { 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) { @@ -51,4 +51,4 @@ class JadeIdolToken extends TokenImpl { public JadeIdolToken copy() { return new JadeIdolToken(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/j/JadeStatue.java b/Mage.Sets/src/mage/cards/j/JadeStatue.java index 4d06a699dc..09bba3914f 100644 --- a/Mage.Sets/src/mage/cards/j/JadeStatue.java +++ b/Mage.Sets/src/mage/cards/j/JadeStatue.java @@ -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. - 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) { diff --git a/Mage.Sets/src/mage/cards/k/KolaghanMonument.java b/Mage.Sets/src/mage/cards/k/KolaghanMonument.java index 865c3bd7d8..29b35ebffd 100644 --- a/Mage.Sets/src/mage/cards/k/KolaghanMonument.java +++ b/Mage.Sets/src/mage/cards/k/KolaghanMonument.java @@ -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. 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) { @@ -44,7 +44,7 @@ public final class KolaghanMonument extends CardImpl { return new KolaghanMonument(this); } - private class KolaghanMonumentToken extends TokenImpl { + private static class KolaghanMonumentToken extends TokenImpl { KolaghanMonumentToken() { super("", "4/4 black and red Dragon artifact creature with flying"); cardType.add(CardType.ARTIFACT); diff --git a/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java b/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java index b7331464ad..db7c74f5f5 100644 --- a/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java +++ b/Mage.Sets/src/mage/cards/l/LairOfTheHydra.java @@ -89,7 +89,7 @@ class LairOfTheHydraEffect extends OneShotEffect { new CreatureToken(xValue, xValue, "X/X green Hydra creature") .withColor("G") .withSubType(SubType.HYDRA), - "land", Duration.EndOfTurn), source + CardType.LAND, Duration.EndOfTurn), source ); return true; } diff --git a/Mage.Sets/src/mage/cards/l/LavaclawReaches.java b/Mage.Sets/src/mage/cards/l/LavaclawReaches.java index e15d0355ce..b7013953b9 100644 --- a/Mage.Sets/src/mage/cards/l/LavaclawReaches.java +++ b/Mage.Sets/src/mage/cards/l/LavaclawReaches.java @@ -36,7 +36,7 @@ public final class LavaclawReaches extends CardImpl { 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. - 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) { diff --git a/Mage.Sets/src/mage/cards/l/LevitatingStatue.java b/Mage.Sets/src/mage/cards/l/LevitatingStatue.java index 3e0016e7ab..f273ef9ab0 100644 --- a/Mage.Sets/src/mage/cards/l/LevitatingStatue.java +++ b/Mage.Sets/src/mage/cards/l/LevitatingStatue.java @@ -38,7 +38,7 @@ public final class LevitatingStatue extends CardImpl { this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect( new CreatureToken( 1, 1, "1/1 Construct artifact creature", SubType.CONSTRUCT - ).withType(CardType.ARTIFACT), "", Duration.EndOfTurn + ).withType(CardType.ARTIFACT), CardType.ARTIFACT, Duration.EndOfTurn ), new GenericManaCost(2))); } diff --git a/Mage.Sets/src/mage/cards/l/LumberingFalls.java b/Mage.Sets/src/mage/cards/l/LumberingFalls.java index 20fdb4ef5f..b290abbd2b 100644 --- a/Mage.Sets/src/mage/cards/l/LumberingFalls.java +++ b/Mage.Sets/src/mage/cards/l/LumberingFalls.java @@ -35,7 +35,7 @@ public final class LumberingFalls extends CardImpl { 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. - 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) { diff --git a/Mage.Sets/src/mage/cards/l/LurkingEvil.java b/Mage.Sets/src/mage/cards/l/LurkingEvil.java index 543e63a436..2eb2a9d451 100644 --- a/Mage.Sets/src/mage/cards/l/LurkingEvil.java +++ b/Mage.Sets/src/mage/cards/l/LurkingEvil.java @@ -17,7 +17,6 @@ import mage.constants.SubType; import mage.constants.Duration; import mage.constants.Zone; import mage.game.Game; -import mage.game.events.GameEvent; import mage.game.permanent.token.TokenImpl; import mage.players.Player; import mage.util.CardUtil; @@ -32,7 +31,7 @@ public final class LurkingEvil extends CardImpl { 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. - 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"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new LurkingEvilCost())); } diff --git a/Mage.Sets/src/mage/cards/l/LurkingJackals.java b/Mage.Sets/src/mage/cards/l/LurkingJackals.java index b7c63f3626..46bf886d5e 100644 --- a/Mage.Sets/src/mage/cards/l/LurkingJackals.java +++ b/Mage.Sets/src/mage/cards/l/LurkingJackals.java @@ -40,7 +40,7 @@ public final class LurkingJackals extends CardImpl { class LurkingJackalsStateTriggeredAbility extends StateTriggeredAbility { 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, "); } diff --git a/Mage.Sets/src/mage/cards/l/LurkingSkirge.java b/Mage.Sets/src/mage/cards/l/LurkingSkirge.java index 837ade572f..0cd9cf6e12 100644 --- a/Mage.Sets/src/mage/cards/l/LurkingSkirge.java +++ b/Mage.Sets/src/mage/cards/l/LurkingSkirge.java @@ -34,7 +34,7 @@ public final class LurkingSkirge extends CardImpl { 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. - 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), "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.")); } diff --git a/Mage.Sets/src/mage/cards/m/MishrasFactory.java b/Mage.Sets/src/mage/cards/m/MishrasFactory.java index 8fb950b3cc..28abadfa49 100644 --- a/Mage.Sets/src/mage/cards/m/MishrasFactory.java +++ b/Mage.Sets/src/mage/cards/m/MishrasFactory.java @@ -39,7 +39,7 @@ public final class MishrasFactory extends CardImpl { 2, 2, "2/2 Assembly-Worker artifact creature", SubType.ASSEMBLY_WORKER - ).withType(CardType.ARTIFACT), "land", Duration.EndOfTurn + ).withType(CardType.ARTIFACT), CardType.LAND, Duration.EndOfTurn ), new GenericManaCost(1))); // {tap}: Target Assembly-Worker creature gets +1/+1 until end of turn. diff --git a/Mage.Sets/src/mage/cards/m/MishrasFoundry.java b/Mage.Sets/src/mage/cards/m/MishrasFoundry.java index d06f027b47..5005f22a1e 100644 --- a/Mage.Sets/src/mage/cards/m/MishrasFoundry.java +++ b/Mage.Sets/src/mage/cards/m/MishrasFoundry.java @@ -42,7 +42,7 @@ public final class MishrasFoundry extends CardImpl { 2, 2, "2/2 Assembly-Worker artifact creature", SubType.ASSEMBLY_WORKER - ).withType(CardType.ARTIFACT), "land", Duration.EndOfTurn + ).withType(CardType.ARTIFACT), CardType.LAND, Duration.EndOfTurn ), new GenericManaCost(2))); // {1}, {T}: Target attacking Assembly-Worker gets +2/+2 until end of turn. diff --git a/Mage.Sets/src/mage/cards/m/MobilizedDistrict.java b/Mage.Sets/src/mage/cards/m/MobilizedDistrict.java index 042cb2feda..e6de269bb5 100644 --- a/Mage.Sets/src/mage/cards/m/MobilizedDistrict.java +++ b/Mage.Sets/src/mage/cards/m/MobilizedDistrict.java @@ -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. 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. " + "It's still a land. This ability costs {1} less to activate " + "for each legendary creature and planeswalker you control." diff --git a/Mage.Sets/src/mage/cards/m/MonumentToPerfection.java b/Mage.Sets/src/mage/cards/m/MonumentToPerfection.java index 761f2bb292..45371e9195 100644 --- a/Mage.Sets/src/mage/cards/m/MonumentToPerfection.java +++ b/Mage.Sets/src/mage/cards/m/MonumentToPerfection.java @@ -63,7 +63,7 @@ public final class MonumentToPerfection extends CardImpl { ).withType(CardType.ARTIFACT) .withAbility(IndestructibleAbility.getInstance()) .withAbility(new ToxicAbility(9)), - "", Duration.Custom + CardType.ARTIFACT, Duration.Custom ).andLoseAbilities(true), new GenericManaCost(3), MonumentToPerfectionCondition.instance ).addHint(MonumentToPerfectionValue.getHint())); } diff --git a/Mage.Sets/src/mage/cards/m/Mutavault.java b/Mage.Sets/src/mage/cards/m/Mutavault.java index 63d33b7c7a..38a836eddf 100644 --- a/Mage.Sets/src/mage/cards/m/Mutavault.java +++ b/Mage.Sets/src/mage/cards/m/Mutavault.java @@ -27,7 +27,7 @@ public final class Mutavault extends CardImpl { this.addAbility(new ColorlessManaAbility()); // {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, - new BecomesCreatureSourceEffect(new MutavaultToken(), "land", Duration.EndOfTurn), + new BecomesCreatureSourceEffect(new MutavaultToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{1}"))); } diff --git a/Mage.Sets/src/mage/cards/m/MythRealized.java b/Mage.Sets/src/mage/cards/m/MythRealized.java index 66e21d8a58..fcd7feded1 100644 --- a/Mage.Sets/src/mage/cards/m/MythRealized.java +++ b/Mage.Sets/src/mage/cards/m/MythRealized.java @@ -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}"))); // {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 "); 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.\"")); diff --git a/Mage.Sets/src/mage/cards/n/NantukoMonastery.java b/Mage.Sets/src/mage/cards/n/NantukoMonastery.java index 2ea567371d..6fb2a1061c 100644 --- a/Mage.Sets/src/mage/cards/n/NantukoMonastery.java +++ b/Mage.Sets/src/mage/cards/n/NantukoMonastery.java @@ -32,7 +32,7 @@ public final class NantukoMonastery extends CardImpl { 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. 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)); ability.setAbilityWord(AbilityWord.THRESHOLD); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/n/NeedleSpires.java b/Mage.Sets/src/mage/cards/n/NeedleSpires.java index d37a5b7485..dc4dc2c867 100644 --- a/Mage.Sets/src/mage/cards/n/NeedleSpires.java +++ b/Mage.Sets/src/mage/cards/n/NeedleSpires.java @@ -36,7 +36,7 @@ public final class NeedleSpires extends CardImpl { 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. - 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"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{R}{W}"))); } diff --git a/Mage.Sets/src/mage/cards/n/NogiDracoZealot.java b/Mage.Sets/src/mage/cards/n/NogiDracoZealot.java index a7aff4611a..26a5b8a109 100644 --- a/Mage.Sets/src/mage/cards/n/NogiDracoZealot.java +++ b/Mage.Sets/src/mage/cards/n/NogiDracoZealot.java @@ -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") .withSubType(SubType.DRAGON) .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, " + "{this} becomes a Dragon with base power and toughness 5/5 and gains flying" ); diff --git a/Mage.Sets/src/mage/cards/o/OjutaiMonument.java b/Mage.Sets/src/mage/cards/o/OjutaiMonument.java index 31a42c75c4..2496802c04 100644 --- a/Mage.Sets/src/mage/cards/o/OjutaiMonument.java +++ b/Mage.Sets/src/mage/cards/o/OjutaiMonument.java @@ -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. 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) { diff --git a/Mage.Sets/src/mage/cards/o/OpalAcrolith.java b/Mage.Sets/src/mage/cards/o/OpalAcrolith.java index ed88431409..bf06e7e207 100644 --- a/Mage.Sets/src/mage/cards/o/OpalAcrolith.java +++ b/Mage.Sets/src/mage/cards/o/OpalAcrolith.java @@ -36,7 +36,7 @@ public final class OpalAcrolith extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalAcrolithToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalAcrolithToken(), null, Duration.WhileOnBattlefield), filter, false); 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.")); diff --git a/Mage.Sets/src/mage/cards/o/OpalArchangel.java b/Mage.Sets/src/mage/cards/o/OpalArchangel.java index 9506378bf9..55c9e8f6e5 100644 --- a/Mage.Sets/src/mage/cards/o/OpalArchangel.java +++ b/Mage.Sets/src/mage/cards/o/OpalArchangel.java @@ -31,7 +31,7 @@ public final class OpalArchangel extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalArchangelToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalArchangelToken(), null, Duration.WhileOnBattlefield), new FilterCreatureSpell(), false); 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.")); diff --git a/Mage.Sets/src/mage/cards/o/OpalAvenger.java b/Mage.Sets/src/mage/cards/o/OpalAvenger.java index d578c0512a..b188807221 100644 --- a/Mage.Sets/src/mage/cards/o/OpalAvenger.java +++ b/Mage.Sets/src/mage/cards/o/OpalAvenger.java @@ -40,7 +40,7 @@ public final class OpalAvenger extends CardImpl { class OpalAvengerStateTriggeredAbility extends StateTriggeredAbility { 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, "); } diff --git a/Mage.Sets/src/mage/cards/o/OpalCaryatid.java b/Mage.Sets/src/mage/cards/o/OpalCaryatid.java index fa183b0e16..1690acf413 100644 --- a/Mage.Sets/src/mage/cards/o/OpalCaryatid.java +++ b/Mage.Sets/src/mage/cards/o/OpalCaryatid.java @@ -29,7 +29,7 @@ public final class OpalCaryatid extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalCaryatidSoldierToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalCaryatidSoldierToken(), null, Duration.WhileOnBattlefield), new FilterCreatureSpell(), false); 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.")); diff --git a/Mage.Sets/src/mage/cards/o/OpalChampion.java b/Mage.Sets/src/mage/cards/o/OpalChampion.java index 6e12c4dc80..a1f1ab960f 100644 --- a/Mage.Sets/src/mage/cards/o/OpalChampion.java +++ b/Mage.Sets/src/mage/cards/o/OpalChampion.java @@ -30,7 +30,7 @@ public final class OpalChampion extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalChampionKnight(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalChampionKnight(), null, Duration.WhileOnBattlefield), new FilterCreatureSpell(), false); 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.")); diff --git a/Mage.Sets/src/mage/cards/o/OpalGargoyle.java b/Mage.Sets/src/mage/cards/o/OpalGargoyle.java index 82ee5f640a..1f211b77b7 100644 --- a/Mage.Sets/src/mage/cards/o/OpalGargoyle.java +++ b/Mage.Sets/src/mage/cards/o/OpalGargoyle.java @@ -30,7 +30,7 @@ public final class OpalGargoyle extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGargoyleToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGargoyleToken(), null, Duration.WhileOnBattlefield), new FilterCreatureSpell(), false); 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.")); diff --git a/Mage.Sets/src/mage/cards/o/OpalGuardian.java b/Mage.Sets/src/mage/cards/o/OpalGuardian.java index d1d15ad528..4a1322e7b7 100644 --- a/Mage.Sets/src/mage/cards/o/OpalGuardian.java +++ b/Mage.Sets/src/mage/cards/o/OpalGuardian.java @@ -32,7 +32,7 @@ public final class OpalGuardian extends CardImpl { 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. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGuardianGargoyle(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new OpalGuardianGargoyle(), null, Duration.WhileOnBattlefield), new FilterCreatureSpell(), false); 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.")); diff --git a/Mage.Sets/src/mage/cards/o/OrzhovKeyrune.java b/Mage.Sets/src/mage/cards/o/OrzhovKeyrune.java index 71c409417b..5bdf0e352a 100644 --- a/Mage.Sets/src/mage/cards/o/OrzhovKeyrune.java +++ b/Mage.Sets/src/mage/cards/o/OrzhovKeyrune.java @@ -30,7 +30,7 @@ public final class OrzhovKeyrune extends CardImpl { this.addAbility(new BlackManaAbility()); // {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) { diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianTotem.java b/Mage.Sets/src/mage/cards/p/PhyrexianTotem.java index ec1211dbfc..6a15c0af44 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianTotem.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianTotem.java @@ -37,7 +37,7 @@ public final class PhyrexianTotem extends CardImpl { this.addAbility(new BlackManaAbility()); // {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( - 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. this.addAbility(new PhyrexianTotemTriggeredAbility()); } @@ -116,4 +116,4 @@ class PhyrexianTotemTriggeredAbility extends TriggeredAbilityImpl { public String getRule() { return "Whenever {this} is dealt damage, if it's a creature, sacrifice that many permanents."; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/r/RagingRavine.java b/Mage.Sets/src/mage/cards/r/RagingRavine.java index 622f39c9ba..eb7afb16a7 100644 --- a/Mage.Sets/src/mage/cards/r/RagingRavine.java +++ b/Mage.Sets/src/mage/cards/r/RagingRavine.java @@ -40,7 +40,7 @@ public final class RagingRavine extends CardImpl { this.addAbility(new RedManaAbility()); Effect effect = new BecomesCreatureSourceEffect( 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"); // {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}")); @@ -59,4 +59,4 @@ public final class RagingRavine extends CardImpl { return new RagingRavine(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/r/RakdosKeyrune.java b/Mage.Sets/src/mage/cards/r/RakdosKeyrune.java index d06517f096..e2919101ef 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosKeyrune.java +++ b/Mage.Sets/src/mage/cards/r/RakdosKeyrune.java @@ -30,7 +30,7 @@ public final class RakdosKeyrune extends CardImpl { 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. - 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) { diff --git a/Mage.Sets/src/mage/cards/r/ReptilianReflection.java b/Mage.Sets/src/mage/cards/r/ReptilianReflection.java index 8393e07454..087ad02dd5 100644 --- a/Mage.Sets/src/mage/cards/r/ReptilianReflection.java +++ b/Mage.Sets/src/mage/cards/r/ReptilianReflection.java @@ -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. 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 " + "in addition to its other types until end of turn"), true)); } diff --git a/Mage.Sets/src/mage/cards/r/Riddleform.java b/Mage.Sets/src/mage/cards/r/Riddleform.java index e4aa7444ba..94673b1e90 100644 --- a/Mage.Sets/src/mage/cards/r/Riddleform.java +++ b/Mage.Sets/src/mage/cards/r/Riddleform.java @@ -37,7 +37,7 @@ public final class Riddleform extends CardImpl { 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. - Effect effect = new BecomesCreatureSourceEffect(new RiddleformToken(), "", Duration.EndOfTurn); + Effect effect = new BecomesCreatureSourceEffect(new RiddleformToken(), CardType.ENCHANTMENT, Duration.EndOfTurn); effect.setText("have {this} become a 3/3 Sphinx creature with flying in addition to its other types until end of turn."); this.addAbility(new SpellCastControllerTriggeredAbility(Zone.BATTLEFIELD, effect, filterNonCreature, true, true)); diff --git a/Mage.Sets/src/mage/cards/r/RustedRelic.java b/Mage.Sets/src/mage/cards/r/RustedRelic.java index 514d30a085..c44ecb542c 100644 --- a/Mage.Sets/src/mage/cards/r/RustedRelic.java +++ b/Mage.Sets/src/mage/cards/r/RustedRelic.java @@ -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. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BecomesCreatureSourceEffect(new RustedRelicToken(), "artifact", Duration.WhileOnBattlefield), + new BecomesCreatureSourceEffect(new RustedRelicToken(), CardType.ARTIFACT, Duration.WhileOnBattlefield), MetalcraftCondition.instance, "{this} is a 5/5 Golem artifact creature as long as you control three or more artifacts")) .setAbilityWord(AbilityWord.METALCRAFT) @@ -59,4 +59,4 @@ class RustedRelicToken extends TokenImpl { public RustedRelicToken copy() { return new RustedRelicToken(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SanguineStatuette.java b/Mage.Sets/src/mage/cards/s/SanguineStatuette.java index 5452de4839..270575fb1e 100644 --- a/Mage.Sets/src/mage/cards/s/SanguineStatuette.java +++ b/Mage.Sets/src/mage/cards/s/SanguineStatuette.java @@ -41,7 +41,7 @@ public final class SanguineStatuette extends CardImpl { .withType(CardType.ARTIFACT) .withSubType(SubType.VAMPIRE) .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)); } diff --git a/Mage.Sets/src/mage/cards/s/SelesnyaKeyrune.java b/Mage.Sets/src/mage/cards/s/SelesnyaKeyrune.java index 093aa08cde..9b9a08821e 100644 --- a/Mage.Sets/src/mage/cards/s/SelesnyaKeyrune.java +++ b/Mage.Sets/src/mage/cards/s/SelesnyaKeyrune.java @@ -29,7 +29,7 @@ public final class SelesnyaKeyrune extends CardImpl { this.addAbility(new WhiteManaAbility()); // {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) { diff --git a/Mage.Sets/src/mage/cards/s/ShamblingVent.java b/Mage.Sets/src/mage/cards/s/ShamblingVent.java index 094c961457..ad4c911716 100644 --- a/Mage.Sets/src/mage/cards/s/ShamblingVent.java +++ b/Mage.Sets/src/mage/cards/s/ShamblingVent.java @@ -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. 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) { @@ -68,4 +68,4 @@ class ShamblingVentToken extends TokenImpl { public ShamblingVentToken copy() { return new ShamblingVentToken(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SilumgarMonument.java b/Mage.Sets/src/mage/cards/s/SilumgarMonument.java index fcb2a8a0c4..3eab0e68b1 100644 --- a/Mage.Sets/src/mage/cards/s/SilumgarMonument.java +++ b/Mage.Sets/src/mage/cards/s/SilumgarMonument.java @@ -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. 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) { diff --git a/Mage.Sets/src/mage/cards/s/SimicKeyrune.java b/Mage.Sets/src/mage/cards/s/SimicKeyrune.java index 9cae760bb7..ed396a66f4 100644 --- a/Mage.Sets/src/mage/cards/s/SimicKeyrune.java +++ b/Mage.Sets/src/mage/cards/s/SimicKeyrune.java @@ -31,7 +31,7 @@ public final class SimicKeyrune extends CardImpl { this.addAbility(new BlueManaAbility()); // {G}{U}: Simic Keyrune becomes a 2/3 green and blue Crab artifact creature with hexproof until end of turn. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SimicKeyruneToken(), "", Duration.EndOfTurn), new ManaCostsImpl<>("{G}{U}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SimicKeyruneToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{G}{U}"))); } private SimicKeyrune(final SimicKeyrune card) { diff --git a/Mage.Sets/src/mage/cards/s/Skinshifter.java b/Mage.Sets/src/mage/cards/s/Skinshifter.java index 096cf9d5ce..cfe35c8655 100644 --- a/Mage.Sets/src/mage/cards/s/Skinshifter.java +++ b/Mage.Sets/src/mage/cards/s/Skinshifter.java @@ -31,14 +31,14 @@ public final class Skinshifter extends CardImpl { this.toughness = new MageInt(1); Ability ability = new SimpleActivatedAbility( - new BecomesCreatureSourceEffect(new RhinoToken(), "", Duration.EndOfTurn).withDurationRuleAtStart(true), + new BecomesCreatureSourceEffect(new RhinoToken(), CardType.CREATURE, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{G}")); ability.getModes().setChooseText("Choose one. Activate only once each turn."); - Mode mode = new Mode(new BecomesCreatureSourceEffect(new BirdToken(), "", Duration.EndOfTurn).withDurationRuleAtStart(true)); + Mode mode = new Mode(new BecomesCreatureSourceEffect(new BirdToken(), CardType.CREATURE, Duration.EndOfTurn).withDurationRuleAtStart(true)); ability.addMode(mode); - mode = new Mode(new BecomesCreatureSourceEffect(new PlantToken(), "", Duration.EndOfTurn).withDurationRuleAtStart(true)); + mode = new Mode(new BecomesCreatureSourceEffect(new PlantToken(), CardType.CREATURE, Duration.EndOfTurn).withDurationRuleAtStart(true)); ability.addMode(mode); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/SpawningPool.java b/Mage.Sets/src/mage/cards/s/SpawningPool.java index fbc500ab76..f0f6f2cede 100644 --- a/Mage.Sets/src/mage/cards/s/SpawningPool.java +++ b/Mage.Sets/src/mage/cards/s/SpawningPool.java @@ -22,7 +22,7 @@ public final class SpawningPool extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new BlackManaAbility()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SkeletonRegenerateToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SkeletonRegenerateToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{B}"))); } private SpawningPool(final SpawningPool card) { diff --git a/Mage.Sets/src/mage/cards/s/StalkingStones.java b/Mage.Sets/src/mage/cards/s/StalkingStones.java index 1d4eb08850..b781259d72 100644 --- a/Mage.Sets/src/mage/cards/s/StalkingStones.java +++ b/Mage.Sets/src/mage/cards/s/StalkingStones.java @@ -23,7 +23,7 @@ public final class StalkingStones extends CardImpl { public StalkingStones(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); this.addAbility(new ColorlessManaAbility()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StalkingStonesToken(), "land", Duration.WhileOnBattlefield) + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StalkingStonesToken(), CardType.LAND, Duration.WhileOnBattlefield) .setText("{this} becomes a 3/3 Elemental artifact creature that's still a land"), new GenericManaCost(6))); } diff --git a/Mage.Sets/src/mage/cards/s/StillLife.java b/Mage.Sets/src/mage/cards/s/StillLife.java index 22af02fbda..d6bc44f28d 100644 --- a/Mage.Sets/src/mage/cards/s/StillLife.java +++ b/Mage.Sets/src/mage/cards/s/StillLife.java @@ -25,7 +25,7 @@ public final class StillLife extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}{G}"); // {G}{G}: Still Life becomes a 4/3 Centaur creature until end of turn. It's still an enchantment. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StillLifeCentaur(), "", Duration.EndOfTurn) + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StillLifeCentaur(), CardType.ENCHANTMENT, Duration.EndOfTurn) .setText("{this} becomes a 4/3 Centaur creature in addition to its other types until end of turn") , new ManaCostsImpl<>("{G}{G}"))); } diff --git a/Mage.Sets/src/mage/cards/s/StirringWildwood.java b/Mage.Sets/src/mage/cards/s/StirringWildwood.java index cf4c5cef5e..e8d627141f 100644 --- a/Mage.Sets/src/mage/cards/s/StirringWildwood.java +++ b/Mage.Sets/src/mage/cards/s/StirringWildwood.java @@ -30,7 +30,7 @@ public final class StirringWildwood extends CardImpl { this.addAbility(new EntersBattlefieldTappedAbility()); this.addAbility(new GreenManaAbility()); this.addAbility(new WhiteManaAbility()); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StirringWildwoodToken(), "land", Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{1}{G}{W}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new StirringWildwoodToken(), CardType.LAND, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{1}{G}{W}"))); } private StirringWildwood(final StirringWildwood card) { diff --git a/Mage.Sets/src/mage/cards/s/StuffedBear.java b/Mage.Sets/src/mage/cards/s/StuffedBear.java index 16b3fe917b..4e46764fc7 100644 --- a/Mage.Sets/src/mage/cards/s/StuffedBear.java +++ b/Mage.Sets/src/mage/cards/s/StuffedBear.java @@ -26,7 +26,7 @@ public final class StuffedBear extends CardImpl { .withColor("G") .withSubType(SubType.BEAR) .withType(CardType.ARTIFACT), - "", Duration.EndOfTurn + CardType.ARTIFACT, Duration.EndOfTurn ), new GenericManaCost(2))); } diff --git a/Mage.Sets/src/mage/cards/s/SvogthosTheRestlessTomb.java b/Mage.Sets/src/mage/cards/s/SvogthosTheRestlessTomb.java index fb32fe12b4..ed91929a20 100644 --- a/Mage.Sets/src/mage/cards/s/SvogthosTheRestlessTomb.java +++ b/Mage.Sets/src/mage/cards/s/SvogthosTheRestlessTomb.java @@ -33,7 +33,7 @@ public final class SvogthosTheRestlessTomb extends CardImpl { this.addAbility(new ColorlessManaAbility()); // {3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land. // set to character defining to prevent setting P/T again to 0 becuase already set by CDA of the token - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SvogthosToken(), "land", Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{B}{G}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SvogthosToken(), CardType.LAND, Duration.EndOfTurn).withDurationRuleAtStart(true), new ManaCostsImpl<>("{3}{B}{G}")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/ThunderTotem.java b/Mage.Sets/src/mage/cards/t/ThunderTotem.java index 1b97230276..7899a1145b 100644 --- a/Mage.Sets/src/mage/cards/t/ThunderTotem.java +++ b/Mage.Sets/src/mage/cards/t/ThunderTotem.java @@ -32,7 +32,7 @@ public final class ThunderTotem extends CardImpl { // {1}{W}{W}: Thunder Totem becomes a 2/2 white Spirit artifact creature with flying and first strike until end of turn. this.addAbility(new SimpleActivatedAbility( Zone.BATTLEFIELD, - new BecomesCreatureSourceEffect(new ThunderTotemToken(), "", Duration.EndOfTurn), + new BecomesCreatureSourceEffect(new ThunderTotemToken(), CardType.ARTIFACT, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{W}{W}"))); } @@ -65,4 +65,4 @@ public final class ThunderTotem extends CardImpl { return new ThunderTotemToken(this); } } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/t/TreetopVillage.java b/Mage.Sets/src/mage/cards/t/TreetopVillage.java index f571d9935c..d1777d8296 100644 --- a/Mage.Sets/src/mage/cards/t/TreetopVillage.java +++ b/Mage.Sets/src/mage/cards/t/TreetopVillage.java @@ -32,7 +32,7 @@ public final class TreetopVillage extends CardImpl { this.addAbility(new GreenManaAbility()); // {1}{G}: Treetop Village becomes a 3/3 green Ape creature with trample until end of turn. It’s still a land. (It can deal excess combat damage to the player or planeswalker it’s attacking.) - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ApeToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{1}{G}"))); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new ApeToken(), CardType.LAND, Duration.EndOfTurn), new ManaCostsImpl<>("{1}{G}"))); } private TreetopVillage(final TreetopVillage card) { @@ -63,4 +63,4 @@ class ApeToken extends TokenImpl { public ApeToken copy() { return new ApeToken(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/v/VeilOfBirds.java b/Mage.Sets/src/mage/cards/v/VeilOfBirds.java index e3a61f8a91..e476933c02 100644 --- a/Mage.Sets/src/mage/cards/v/VeilOfBirds.java +++ b/Mage.Sets/src/mage/cards/v/VeilOfBirds.java @@ -29,7 +29,7 @@ public final class VeilOfBirds extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}"); // When an opponent casts a spell, if Veil of Birds is an enchantment, Veil of Birds becomes a 1/1 Bird creature with flying. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new VeilOfBirdsToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new VeilOfBirdsToken(), null, Duration.WhileOnBattlefield), filter, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT), "Whenever an opponent casts a spell, if Veil of Birds is an enchantment, Veil of Birds becomes a 1/1 Bird creature with flying.")); diff --git a/Mage.Sets/src/mage/cards/v/VeiledApparition.java b/Mage.Sets/src/mage/cards/v/VeiledApparition.java index 53ddbaf269..02b7b1ab39 100644 --- a/Mage.Sets/src/mage/cards/v/VeiledApparition.java +++ b/Mage.Sets/src/mage/cards/v/VeiledApparition.java @@ -35,7 +35,7 @@ public final class VeiledApparition extends CardImpl { // When an opponent casts a spell, if Veiled Apparition is an enchantment, Veiled Apparition becomes a 3/3 Illusion creature with flying and "At the beginning of your upkeep, sacrifice Veiled Apparition unless you pay {1}{U}." - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new VeilApparitionToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new VeilApparitionToken(), null, Duration.WhileOnBattlefield), filter, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT), "Whenever an opponent casts a spell, if Veiled Apparition is an enchantment, Veiled Apparition becomes a 3/3 Illusion creature with flying and \"At the beginning of your upkeep, sacrifice Veiled Apparition unless you pay {1}{U}.")); diff --git a/Mage.Sets/src/mage/cards/v/VeiledCrocodile.java b/Mage.Sets/src/mage/cards/v/VeiledCrocodile.java index 547dcb8af6..5e516cebb5 100644 --- a/Mage.Sets/src/mage/cards/v/VeiledCrocodile.java +++ b/Mage.Sets/src/mage/cards/v/VeiledCrocodile.java @@ -41,7 +41,7 @@ public final class VeiledCrocodile extends CardImpl { class VeiledCrocodileStateTriggeredAbility extends StateTriggeredAbility { public VeiledCrocodileStateTriggeredAbility() { - super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new VeilCrocodileToken(), Duration.Custom)); + super(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new VeilCrocodileToken(), null, Duration.Custom)); setTriggerPhrase("When a player has no cards in hand, if {this} is an enchantment, "); } diff --git a/Mage.Sets/src/mage/cards/v/VeiledSerpent.java b/Mage.Sets/src/mage/cards/v/VeiledSerpent.java index 8167f787a8..3ec366c075 100644 --- a/Mage.Sets/src/mage/cards/v/VeiledSerpent.java +++ b/Mage.Sets/src/mage/cards/v/VeiledSerpent.java @@ -32,7 +32,7 @@ public final class VeiledSerpent extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); // When an opponent casts a spell, if Veiled Serpent is an enchantment, Veiled Serpent becomes a 4/4 Serpent creature that can't attack unless defending player controls an Island. - TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new VeiledSerpentToken(), Duration.WhileOnBattlefield), + TriggeredAbility ability = new SpellCastOpponentTriggeredAbility(new BecomesCreatureSourceEffect(new VeiledSerpentToken(), null, Duration.WhileOnBattlefield), new FilterSpell(), false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new SourceMatchesFilterCondition(StaticFilters.FILTER_PERMANENT_ENCHANTMENT), "Whenever an opponent casts a spell, if Veiled Serpent is an enchantment, Veiled Serpent becomes a 4/4 Serpent creature that can't attack unless defending player controls an Island.")); diff --git a/Mage.Sets/src/mage/cards/w/WanderingFumarole.java b/Mage.Sets/src/mage/cards/w/WanderingFumarole.java index 643d45fdfc..02a2dfb9e2 100644 --- a/Mage.Sets/src/mage/cards/w/WanderingFumarole.java +++ b/Mage.Sets/src/mage/cards/w/WanderingFumarole.java @@ -37,7 +37,7 @@ public final class WanderingFumarole extends CardImpl { // {2}{U}{R}: Until end of turn, Wandering Fumarole becomes a 1/4 blue and red Elemental creature with // "0: Switch this creature's power and toughness until end of turn." It's still a land. - Effect effect = new BecomesCreatureSourceEffect(new WanderingFumaroleToken(), "land", Duration.EndOfTurn); + Effect effect = new BecomesCreatureSourceEffect(new WanderingFumaroleToken(), CardType.LAND, Duration.EndOfTurn); effect.setText("{this} becomes a 1/4 blue and red Elemental creature with \"0: Switch this creature's power and toughness until end of turn.\" It's still a land"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{U}{R}"))); } diff --git a/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java b/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java index 205d93ad34..e8d5447bbd 100644 --- a/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java +++ b/Mage.Sets/src/mage/cards/w/WardenOfTheWall.java @@ -35,7 +35,7 @@ public final class WardenOfTheWall extends CardImpl { // As long as it's not your turn, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( - new BecomesCreatureSourceEffect(new GargoyleToken(), "", Duration.WhileOnBattlefield), + new BecomesCreatureSourceEffect(new GargoyleToken(), CardType.ARTIFACT, Duration.WhileOnBattlefield), NotMyTurnCondition.instance, "As long as it's not your turn, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying")) .addHint(NotMyTurnHint.instance)); diff --git a/Mage.Sets/src/mage/cards/w/WeatherseedTotem.java b/Mage.Sets/src/mage/cards/w/WeatherseedTotem.java index 213b85b457..ff2009b721 100644 --- a/Mage.Sets/src/mage/cards/w/WeatherseedTotem.java +++ b/Mage.Sets/src/mage/cards/w/WeatherseedTotem.java @@ -39,7 +39,7 @@ public final class WeatherseedTotem extends CardImpl { .withSubType(SubType.TREEFOLK) .withType(CardType.ARTIFACT) .withAbility(TrampleAbility.getInstance()), - "", Duration.EndOfTurn + CardType.ARTIFACT, Duration.EndOfTurn ), new ManaCostsImpl<>("{2}{G}{G}{G}"))); // When Weatherseed Totem is put into a graveyard from the battlefield, if it was a creature, return this card to its owner's hand. diff --git a/Mage.Sets/src/mage/cards/x/XanthicStatue.java b/Mage.Sets/src/mage/cards/x/XanthicStatue.java index 242150e14e..cd489e5e03 100644 --- a/Mage.Sets/src/mage/cards/x/XanthicStatue.java +++ b/Mage.Sets/src/mage/cards/x/XanthicStatue.java @@ -24,7 +24,7 @@ public final class XanthicStatue extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{8}"); // {5}: Until end of turn, Xanthic Statue becomes an 8/8 Golem artifact creature with trample. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new XanthicStatueCreature(), Duration.EndOfTurn) + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new XanthicStatueCreature(), CardType.ARTIFACT, Duration.EndOfTurn) .setText("until end of turn, {this} becomes an 8/8 Golem artifact creature with trample") , new ManaCostsImpl<>("{5}"))); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java index fcf14762fd..8baf02a79e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureSourceEffect.java @@ -38,8 +38,16 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements */ protected Token token; - protected String theyAreStillType; - protected boolean losePreviousTypes; + + /* + null for losing previous types + ARTIFACT for becoming an artifact creature (retains previous types) + LAND for "It's still a land" + ENCHANTMENT for "in addition to its other types" + PLANESWALKER for "that's still a planeswalker" + CREATURE for when only creature types are overwritten + */ + protected CardType retainType; protected boolean loseAbilities = false; protected DynamicValue power = null; protected DynamicValue toughness = null; @@ -47,47 +55,24 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements protected boolean hasCDA; /** - * Becomes a creature retaining its previous types - * @param token Token as blueprint for creature to become - * @param theyAreStillType String for rules text generation - * @param duration Duration for the effect + * @param token Token as blueprint for creature to become + * @param retainType If null, permanent loses its previous types, otherwise retains types with appropriate text + * @param duration Duration for the effect */ - public BecomesCreatureSourceEffect(Token token, String theyAreStillType, Duration duration) { - this(token, theyAreStillType, duration, false); - } - - /** - * Becomes a creature losing its previous types - * @param token Token as blueprint for creature to become - * @param duration Duration for the effect - */ - public BecomesCreatureSourceEffect(Token token, Duration duration) { - this(token, "", duration, true); - } - - /** - * @param token Token as blueprint for creature to become - * @param theyAreStillType String for rules text generation - * @param duration Duration for the effect - * @param losePreviousTypes if true, permanent loses its previous types - */ - public BecomesCreatureSourceEffect(Token token, String theyAreStillType, Duration duration, boolean losePreviousTypes) { + public BecomesCreatureSourceEffect(Token token, CardType retainType, Duration duration) { super(duration, Outcome.BecomeCreature); this.token = token; - this.theyAreStillType = theyAreStillType; - this.losePreviousTypes = losePreviousTypes; - this.durationRuleAtStart = (theyAreStillType != null && theyAreStillType.contains("planeswalker")); - setText(); + this.retainType = retainType; + this.durationRuleAtStart = (retainType == CardType.PLANESWALKER); this.hasCDA = checkTokenCDA(); - + setText(); this.addDependencyType(DependencyType.BecomeCreature); } public BecomesCreatureSourceEffect(final BecomesCreatureSourceEffect effect) { super(effect); this.token = effect.token.copy(); - this.theyAreStillType = effect.theyAreStillType; - this.losePreviousTypes = effect.losePreviousTypes; + this.retainType = effect.retainType; this.loseAbilities = effect.loseAbilities; if (effect.power != null) { this.power = effect.power.copy(); @@ -128,15 +113,14 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements } switch (layer) { case TypeChangingEffects_4: - if (losePreviousTypes) { + if (retainType == null) { permanent.removeAllCardTypes(game); + permanent.removeAllSubTypes(game); } for (CardType cardType : token.getCardType(game)) { permanent.addCardType(game, cardType); } - - if (theyAreStillType != null && theyAreStillType.isEmpty() - || theyAreStillType == null && permanent.isLand(game)) { + if (retainType == CardType.CREATURE || retainType == CardType.ARTIFACT) { permanent.removeAllCreatureTypes(game); } permanent.copySubTypesFrom(game, token); @@ -210,20 +194,23 @@ public class BecomesCreatureSourceEffect extends ContinuousEffectImpl implements } sb.append("{this} becomes a "); sb.append(token.getDescription()); + if (retainType == CardType.ENCHANTMENT) { + sb.append(" in addition to its other types"); + } if (!duration.toString().isEmpty() && !durationRuleAtStart) { sb.append(" "); sb.append(duration.toString()); } - if (theyAreStillType != null && !theyAreStillType.isEmpty()) { - if (theyAreStillType.contains("planeswalker")) { - sb.append(" that's"); - } else if (token.getDescription().endsWith("\"")) { + if (retainType == CardType.PLANESWALKER) { + sb.append(" that's still a planeswalker"); + } + if (retainType == CardType.LAND) { + if (token.getDescription().endsWith(".\"")) { sb.append(" It's"); } else { sb.append(". It's"); } - sb.append(" still a "); - sb.append(theyAreStillType); + sb.append(" still a land"); } staticText = sb.toString(); }