mirror of
https://github.com/correl/mage.git
synced 2024-12-27 20:06:31 +00:00
Update wording (nonfunctional)
This commit is contained in:
parent
90c5ec7019
commit
0ab7345fa3
41 changed files with 89 additions and 90 deletions
|
@ -43,7 +43,7 @@ class ApproachOfTheSecondSunEffect extends OneShotEffect {
|
||||||
public ApproachOfTheSecondSunEffect() {
|
public ApproachOfTheSecondSunEffect() {
|
||||||
super(Outcome.Win);
|
super(Outcome.Win);
|
||||||
this.staticText
|
this.staticText
|
||||||
= "If {this} was cast from your hand and you've cast another spell named Approach of the Second Sun this game, you win the game. "
|
= "If this spell was cast from your hand and you've cast another spell named Approach of the Second Sun this game, you win the game. "
|
||||||
+ "Otherwise, put {this} into its owner's library seventh from the top and you gain 7 life.";
|
+ "Otherwise, put {this} into its owner's library seventh from the top and you gain 7 life.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,9 +32,9 @@ public final class ArtisanOfForms extends CardImpl {
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// <i>Heroic</i> — Whenever you cast a spell that targets Artisan of Forms, you may have Artisan of Forms become a copy of target creature and gain this ability.
|
// <i>Heroic</i> — Whenever you cast a spell that targets Artisan of Forms, you may have Artisan of Forms become a copy of target creature, except it has this ability.
|
||||||
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new ArtisanOfFormsApplyToPermanent(), true);
|
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new ArtisanOfFormsApplyToPermanent(), true);
|
||||||
effect.setText("have {this} become a copy of target creature and gain this ability");
|
effect.setText("have {this} become a copy of target creature, except it has this ability");
|
||||||
Ability ability = new HeroicAbility(effect, true);
|
Ability ability = new HeroicAbility(effect, true);
|
||||||
ability.addTarget(new TargetCreaturePermanent());
|
ability.addTarget(new TargetCreaturePermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
@ -55,7 +55,7 @@ class ArtisanOfFormsApplyToPermanent extends ApplyToPermanent {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) {
|
public boolean apply(Game game, MageObject mageObject, Ability source, UUID copyToObjectId) {
|
||||||
Effect effect = new CopyPermanentEffect(new ArtisanOfFormsApplyToPermanent());
|
Effect effect = new CopyPermanentEffect(new ArtisanOfFormsApplyToPermanent());
|
||||||
effect.setText("have {this} become a copy of target creature and gain this ability");
|
effect.setText("have {this} become a copy of target creature, except it has this ability");
|
||||||
mageObject.getAbilities().add(new HeroicAbility(effect, true));
|
mageObject.getAbilities().add(new HeroicAbility(effect, true));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ class ArtisanOfFormsApplyToPermanent extends ApplyToPermanent {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) {
|
public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) {
|
||||||
Effect effect = new CopyPermanentEffect(new ArtisanOfFormsApplyToPermanent());
|
Effect effect = new CopyPermanentEffect(new ArtisanOfFormsApplyToPermanent());
|
||||||
effect.setText("have {this} become a copy of target creature and gain this ability");
|
effect.setText("have {this} become a copy of target creature, except it has this ability");
|
||||||
permanent.addAbility(new HeroicAbility(effect, true), game);
|
permanent.addAbility(new HeroicAbility(effect, true), game);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class CemeteryPuca extends CardImpl {
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// Whenever a creature dies, you may pay {1}. If you do, Cemetery Puca becomes a copy of that creature and gains this ability.
|
// Whenever a creature dies, you may pay {1}. If you do, Cemetery Puca becomes a copy of that creature, except it has this ability.
|
||||||
this.addAbility(new DiesCreatureTriggeredAbility(new DoIfCostPaid(new CemeteryPucaEffect(), new ManaCostsImpl("{1}")), false, new FilterCreaturePermanent("a creature"), true));
|
this.addAbility(new DiesCreatureTriggeredAbility(new DoIfCostPaid(new CemeteryPucaEffect(), new ManaCostsImpl("{1}")), false, new FilterCreaturePermanent("a creature"), true));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ class CemeteryPucaEffect extends OneShotEffect {
|
||||||
|
|
||||||
public CemeteryPucaEffect() {
|
public CemeteryPucaEffect() {
|
||||||
super(Outcome.Copy);
|
super(Outcome.Copy);
|
||||||
staticText = " {this} becomes a copy of that creature and gains this ability";
|
staticText = " {this} becomes a copy of that creature, except it has this ability";
|
||||||
}
|
}
|
||||||
|
|
||||||
public CemeteryPucaEffect(final CemeteryPucaEffect effect) {
|
public CemeteryPucaEffect(final CemeteryPucaEffect effect) {
|
||||||
|
|
|
@ -41,7 +41,7 @@ public final class ChoArrimLegate extends CardImpl {
|
||||||
// Protection from black
|
// Protection from black
|
||||||
this.addAbility(ProtectionAbility.from(ObjectColor.BLACK));
|
this.addAbility(ProtectionAbility.from(ObjectColor.BLACK));
|
||||||
|
|
||||||
// If an opponent controls a Swamp and you control a Plains, you may cast Cho-Arrim Legate without paying its mana cost.
|
// If an opponent controls a Swamp and you control a Plains, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Swamp and you control a Plains",
|
Condition condition = new CompoundCondition("If an opponent controls a Swamp and you control a Plains",
|
||||||
new OpponentControlsPermanentCondition(filterSwamp),
|
new OpponentControlsPermanentCondition(filterSwamp),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterPlains));
|
new PermanentsOnTheBattlefieldCondition(filterPlains));
|
||||||
|
|
|
@ -32,9 +32,9 @@ public final class DacksDuplicate extends CardImpl {
|
||||||
this.power = new MageInt(0);
|
this.power = new MageInt(0);
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// You may have Dack's Duplicate enter the battlefield as a copy of any creature on the battlefield except it gains haste and dethrone.
|
// You may have Dack's Duplicate enter the battlefield as a copy of any creature on the battlefield except it has haste and dethrone.
|
||||||
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new DacksDuplicateApplyToPermanent());
|
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new DacksDuplicateApplyToPermanent());
|
||||||
effect.setText("as a copy of any creature on the battlefield except it gains haste and dethrone");
|
effect.setText("as a copy of any creature on the battlefield except it has haste and dethrone");
|
||||||
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ public final class DeepwoodLegate extends CardImpl {
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// If an opponent controls a Forest and you control a Swamp, you may cast Deepwood Legate without paying its mana cost.
|
// If an opponent controls a Forest and you control a Swamp, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Forest and you control a Swamp",
|
Condition condition = new CompoundCondition("If an opponent controls a Forest and you control a Swamp",
|
||||||
new OpponentControlsPermanentCondition(filterForest),
|
new OpponentControlsPermanentCondition(filterForest),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterSwamp));
|
new PermanentsOnTheBattlefieldCondition(filterSwamp));
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class DimirDoppelganger extends CardImpl {
|
||||||
this.power = new MageInt(0);
|
this.power = new MageInt(0);
|
||||||
this.toughness = new MageInt(2);
|
this.toughness = new MageInt(2);
|
||||||
|
|
||||||
// {1}{U}{B}: Exile target creature card from a graveyard. Dimir Doppelganger becomes a copy of that card and gains this ability.
|
// {1}{U}{B}: Exile target creature card from a graveyard. Dimir Doppelganger becomes a copy of that card, except it has this ability.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DimirDoppelgangerEffect(), new ManaCostsImpl("{1}{U}{B}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DimirDoppelgangerEffect(), new ManaCostsImpl("{1}{U}{B}"));
|
||||||
ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card in a graveyard")));
|
ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard("creature card in a graveyard")));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
@ -57,7 +57,7 @@ class DimirDoppelgangerEffect extends OneShotEffect {
|
||||||
|
|
||||||
DimirDoppelgangerEffect() {
|
DimirDoppelgangerEffect() {
|
||||||
super(Outcome.Copy);
|
super(Outcome.Copy);
|
||||||
staticText = "Exile target creature card from a graveyard. {this} becomes a copy of that card and gains this ability";
|
staticText = "Exile target creature card from a graveyard. {this} becomes a copy of that card, except it has this ability";
|
||||||
}
|
}
|
||||||
|
|
||||||
DimirDoppelgangerEffect(final DimirDoppelgangerEffect effect) {
|
DimirDoppelgangerEffect(final DimirDoppelgangerEffect effect) {
|
||||||
|
|
|
@ -37,7 +37,7 @@ public final class DreamPillager extends CardImpl {
|
||||||
|
|
||||||
// Flying
|
// Flying
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
// Whenever Dream Pillager deals combat damage to a player, exile that many cards from the top of your library. Until end of turn, you may cast nonland cards exiled this way.
|
// Whenever Dream Pillager deals combat damage to a player, exile that many cards from the top of your library. Until end of turn, you may cast nonland cards from among those exiled cards.
|
||||||
this.addAbility(new DreamPillagerTriggeredAbility());
|
this.addAbility(new DreamPillagerTriggeredAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ class DreamPillagerTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Whenever {this} deals combat damage to a player, exile that many cards from the top of your library. Until end of turn, you may cast nonland cards exiled this way.";
|
return "Whenever {this} deals combat damage to a player, exile that many cards from the top of your library. Until end of turn, you may cast nonland cards from among those exiled cards.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ class DreamPillagerEffect extends OneShotEffect {
|
||||||
|
|
||||||
public DreamPillagerEffect() {
|
public DreamPillagerEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
this.staticText = "exile that many cards from the top of your library. Until end of turn, you may cast nonland cards exiled this way";
|
this.staticText = "exile that many cards from the top of your library. Until end of turn, you may cast nonland cards from among those exiled cards";
|
||||||
}
|
}
|
||||||
|
|
||||||
public DreamPillagerEffect(final DreamPillagerEffect effect) {
|
public DreamPillagerEffect(final DreamPillagerEffect effect) {
|
||||||
|
|
|
@ -39,9 +39,9 @@ public final class EvilTwin extends CardImpl {
|
||||||
this.power = new MageInt(0);
|
this.power = new MageInt(0);
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// You may have Evil Twin enter the battlefield as a copy of any creature on the battlefield except it gains "{U}{B}, {T}: Destroy target creature with the same name as this creature."
|
// You may have Evil Twin enter the battlefield as a copy of any creature on the battlefield, except it has "{U}{B}, {T}: Destroy target creature with the same name as this creature."
|
||||||
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new EvilTwinApplyToPermanent());
|
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new EvilTwinApplyToPermanent());
|
||||||
effect.setText("as a copy of any creature on the battlefield except it gains \"{U}{B}, {T}: Destroy target creature with the same name as this creature.\"");
|
effect.setText("as a copy of any creature on the battlefield, except it has \"{U}{B}, {T}: Destroy target creature with the same name as this creature.\"");
|
||||||
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,9 +37,9 @@ public final class Gigantoplasm extends CardImpl {
|
||||||
this.power = new MageInt(0);
|
this.power = new MageInt(0);
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// You may have Gigantoplasm enter the battlefield as a copy of any creature on the battlefield except it gains "{X}: This creature has base power and toughness X/X."
|
// You may have Gigantoplasm enter the battlefield as a copy of any creature on the battlefield, except it has "{X}: This creature has base power and toughness X/X."
|
||||||
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new GigantoplasmApplyToPermanent());
|
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new GigantoplasmApplyToPermanent());
|
||||||
effect.setText("a copy of any creature on the battlefield except it gains \"{X}: This creature has base power and toughness X/X.\"");
|
effect.setText("a copy of any creature on the battlefield, except it has \"{X}: This creature has base power and toughness X/X.\"");
|
||||||
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ public final class HeatShimmer extends CardImpl {
|
||||||
public HeatShimmer(UUID ownerId, CardSetInfo setInfo) {
|
public HeatShimmer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}");
|
||||||
|
|
||||||
// Create a token that's a copy of target creature. That token has haste and "At the beginning of the end step, exile this permanent."
|
//Create a token that's a copy of target creature, except it has haste and "At the beginning of the end step, exile this permanent."
|
||||||
this.getSpellAbility().addEffect(new HeatShimmerEffect());
|
this.getSpellAbility().addEffect(new HeatShimmerEffect());
|
||||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ class HeatShimmerEffect extends OneShotEffect {
|
||||||
|
|
||||||
public HeatShimmerEffect() {
|
public HeatShimmerEffect() {
|
||||||
super(Outcome.Copy);
|
super(Outcome.Copy);
|
||||||
this.staticText = "Create a token that's a copy of target creature. That token has haste and \"At the beginning of the end step, exile this permanent.\"";
|
this.staticText = "Create a token that's a copy of target creature, except it has haste and \"At the beginning of the end step, exile this permanent.\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
public HeatShimmerEffect(final HeatShimmerEffect effect) {
|
public HeatShimmerEffect(final HeatShimmerEffect effect) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class IncreasingAmbition extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}");
|
||||||
|
|
||||||
|
|
||||||
// Search your library for a card and put that card into your hand. If Increasing Ambition was cast from a graveyard, instead search your library for two cards and put those cards into your hand. Then shuffle your library.
|
// Search your library for a card and put that card into your hand. If this spell was cast from a graveyard, instead search your library for two cards and put those cards into your hand. Then shuffle your library.
|
||||||
this.getSpellAbility().addEffect(new IncreasingAmbitionEffect());
|
this.getSpellAbility().addEffect(new IncreasingAmbitionEffect());
|
||||||
|
|
||||||
// Flashback {7}{B}
|
// Flashback {7}{B}
|
||||||
|
@ -51,7 +51,7 @@ class IncreasingAmbitionEffect extends SearchEffect {
|
||||||
|
|
||||||
public IncreasingAmbitionEffect() {
|
public IncreasingAmbitionEffect() {
|
||||||
super(new TargetCardInLibrary(), Outcome.DrawCard);
|
super(new TargetCardInLibrary(), Outcome.DrawCard);
|
||||||
staticText = "Search your library for a card and put that card into your hand. If {this} was cast from a graveyard, instead search your library for two cards and put those cards into your hand. Then shuffle your library";
|
staticText = "Search your library for a card and put that card into your hand. If this spell was cast from a graveyard, instead search your library for two cards and put those cards into your hand. Then shuffle your library";
|
||||||
}
|
}
|
||||||
|
|
||||||
public IncreasingAmbitionEffect(final IncreasingAmbitionEffect effect) {
|
public IncreasingAmbitionEffect(final IncreasingAmbitionEffect effect) {
|
||||||
|
|
|
@ -24,7 +24,7 @@ public final class IncreasingConfusion extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{U}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{U}");
|
||||||
|
|
||||||
|
|
||||||
// Target player puts the top X cards of their library into their graveyard. If Increasing Confusion was cast from a graveyard, that player puts twice that many cards into their graveyard instead.
|
// Target player puts the top X cards of their library into their graveyard. If this spell was cast from a graveyard, that player puts twice that many cards into their graveyard instead.
|
||||||
this.getSpellAbility().addEffect(new IncreasingConfusionEffect());
|
this.getSpellAbility().addEffect(new IncreasingConfusionEffect());
|
||||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ class IncreasingConfusionEffect extends OneShotEffect {
|
||||||
|
|
||||||
public IncreasingConfusionEffect() {
|
public IncreasingConfusionEffect() {
|
||||||
super(Outcome.Detriment);
|
super(Outcome.Detriment);
|
||||||
staticText = "Target player puts the top X cards of their library into their graveyard. If {this} was cast from a graveyard, that player puts twice that many cards into their graveyard instead";
|
staticText = "Target player puts the top X cards of their library into their graveyard. If this spell was cast from a graveyard, that player puts twice that many cards into their graveyard instead";
|
||||||
}
|
}
|
||||||
|
|
||||||
public IncreasingConfusionEffect(final IncreasingConfusionEffect effect) {
|
public IncreasingConfusionEffect(final IncreasingConfusionEffect effect) {
|
||||||
|
|
|
@ -25,7 +25,7 @@ public final class IncreasingDevotion extends CardImpl {
|
||||||
public IncreasingDevotion(UUID ownerId, CardSetInfo setInfo) {
|
public IncreasingDevotion(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}{W}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}{W}");
|
||||||
|
|
||||||
// Create five 1/1 white Human creature tokens. If Increasing Devotion was cast from a graveyard, create ten of those tokens instead.
|
// Create five 1/1 white Human creature tokens. If this spell was cast from a graveyard, create ten of those tokens instead.
|
||||||
this.getSpellAbility().addEffect(new IncreasingDevotionEffect());
|
this.getSpellAbility().addEffect(new IncreasingDevotionEffect());
|
||||||
|
|
||||||
// Flashback {7}{W}{W}
|
// Flashback {7}{W}{W}
|
||||||
|
@ -48,7 +48,7 @@ class IncreasingDevotionEffect extends OneShotEffect {
|
||||||
|
|
||||||
public IncreasingDevotionEffect() {
|
public IncreasingDevotionEffect() {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
staticText = "Create five 1/1 white Human creature tokens. If {this} was cast from a graveyard, create ten of those tokens instead";
|
staticText = "Create five 1/1 white Human creature tokens. If this spell was cast from a graveyard, create ten of those tokens instead";
|
||||||
}
|
}
|
||||||
|
|
||||||
public IncreasingDevotionEffect(final IncreasingDevotionEffect effect) {
|
public IncreasingDevotionEffect(final IncreasingDevotionEffect effect) {
|
||||||
|
|
|
@ -25,7 +25,7 @@ public final class IncreasingSavagery extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}{G}");
|
||||||
|
|
||||||
|
|
||||||
// Put five +1/+1 counters on target creature. If Increasing Savagery was cast from a graveyard, put ten +1/+1 counters on that creature instead.
|
// Put five +1/+1 counters on target creature. If this spell was cast from a graveyard, put ten +1/+1 counters on that creature instead.
|
||||||
this.getSpellAbility().addEffect(new IncreasingSavageryEffect());
|
this.getSpellAbility().addEffect(new IncreasingSavageryEffect());
|
||||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ class IncreasingSavageryEffect extends OneShotEffect {
|
||||||
|
|
||||||
public IncreasingSavageryEffect() {
|
public IncreasingSavageryEffect() {
|
||||||
super(Outcome.BoostCreature);
|
super(Outcome.BoostCreature);
|
||||||
staticText = "Put five +1/+1 counters on target creature. If Increasing Savagery was cast from a graveyard, put ten +1/+1 counters on that creature instead";
|
staticText = "Put five +1/+1 counters on target creature. If this spell was cast from a graveyard, put ten +1/+1 counters on that creature instead";
|
||||||
}
|
}
|
||||||
|
|
||||||
public IncreasingSavageryEffect(final IncreasingSavageryEffect effect) {
|
public IncreasingSavageryEffect(final IncreasingSavageryEffect effect) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ public final class IncreasingVengeance extends CardImpl {
|
||||||
public IncreasingVengeance(UUID ownerId, CardSetInfo setInfo) {
|
public IncreasingVengeance(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}{R}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}{R}");
|
||||||
|
|
||||||
// Copy target instant or sorcery spell you control. If Increasing Vengeance was cast from a graveyard, copy that spell twice instead. You may choose new targets for the copies.
|
// Copy target instant or sorcery spell you control. If this spell was cast from a graveyard, copy that spell twice instead. You may choose new targets for the copies.
|
||||||
this.getSpellAbility().addEffect(new IncreasingVengeanceEffect());
|
this.getSpellAbility().addEffect(new IncreasingVengeanceEffect());
|
||||||
Target target = new TargetSpell(filter);
|
Target target = new TargetSpell(filter);
|
||||||
this.getSpellAbility().addTarget(target);
|
this.getSpellAbility().addTarget(target);
|
||||||
|
@ -61,7 +61,7 @@ class IncreasingVengeanceEffect extends OneShotEffect {
|
||||||
|
|
||||||
public IncreasingVengeanceEffect() {
|
public IncreasingVengeanceEffect() {
|
||||||
super(Outcome.BoostCreature);
|
super(Outcome.BoostCreature);
|
||||||
staticText = "Copy target instant or sorcery spell you control. If Increasing Vengeance was cast from a graveyard, copy that spell twice instead. You may choose new targets for the copies";
|
staticText = "Copy target instant or sorcery spell you control. If this spell was cast from a graveyard, copy that spell twice instead. You may choose new targets for the copies";
|
||||||
}
|
}
|
||||||
|
|
||||||
public IncreasingVengeanceEffect(final IncreasingVengeanceEffect effect) {
|
public IncreasingVengeanceEffect(final IncreasingVengeanceEffect effect) {
|
||||||
|
|
|
@ -49,7 +49,7 @@ public final class KikiJikiMirrorBreaker extends CardImpl {
|
||||||
|
|
||||||
// Haste
|
// Haste
|
||||||
this.addAbility(HasteAbility.getInstance());
|
this.addAbility(HasteAbility.getInstance());
|
||||||
// {tap}: Create a token that's a copy of target nonlegendary creature you control . That token has haste. Sacrifice it at the beginning of the next end step.
|
// {tap}: Create a token that's a copy of target nonlegendary creature you control, except it has haste. Sacrifice it at the beginning of the next end step.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KikiJikiMirrorBreakerEffect(), new TapSourceCost());
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new KikiJikiMirrorBreakerEffect(), new TapSourceCost());
|
||||||
ability.addTarget(new TargetControlledCreaturePermanent(1, 1, filter, false));
|
ability.addTarget(new TargetControlledCreaturePermanent(1, 1, filter, false));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
@ -70,7 +70,7 @@ class KikiJikiMirrorBreakerEffect extends OneShotEffect {
|
||||||
|
|
||||||
public KikiJikiMirrorBreakerEffect() {
|
public KikiJikiMirrorBreakerEffect() {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
this.staticText = "Create a token that's a copy of target nonlegendary creature you control. That token has haste. Sacrifice it at the beginning of the next end step";
|
this.staticText = "Create a token that's a copy of target nonlegendary creature you control, except it has haste. Sacrifice it at the beginning of the next end step";
|
||||||
}
|
}
|
||||||
|
|
||||||
public KikiJikiMirrorBreakerEffect(final KikiJikiMirrorBreakerEffect effect) {
|
public KikiJikiMirrorBreakerEffect(final KikiJikiMirrorBreakerEffect effect) {
|
||||||
|
|
|
@ -39,7 +39,7 @@ public final class KyrenLegate extends CardImpl {
|
||||||
// Haste
|
// Haste
|
||||||
this.addAbility(HasteAbility.getInstance());
|
this.addAbility(HasteAbility.getInstance());
|
||||||
|
|
||||||
// If an opponent controls a Plains and you control a Mountain, you may cast Kyren Legate without paying its mana cost.
|
// If an opponent controls a Plains and you control a Mountain, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Plains and you control a Mountain",
|
Condition condition = new CompoundCondition("If an opponent controls a Plains and you control a Mountain",
|
||||||
new OpponentControlsPermanentCondition(filterPlains),
|
new OpponentControlsPermanentCondition(filterPlains),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterMountain));
|
new PermanentsOnTheBattlefieldCondition(filterMountain));
|
||||||
|
|
|
@ -34,7 +34,7 @@ public final class Massacre extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{B}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{B}");
|
||||||
|
|
||||||
|
|
||||||
// If an opponent controls a Plains and you control a Swamp, you may cast Massacre without paying its mana cost.
|
// If an opponent controls a Plains and you control a Swamp, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Plains and you control a Swamp",
|
Condition condition = new CompoundCondition("If an opponent controls a Plains and you control a Swamp",
|
||||||
new OpponentControlsPermanentCondition(filterPlains),
|
new OpponentControlsPermanentCondition(filterPlains),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterSwamp));
|
new PermanentsOnTheBattlefieldCondition(filterSwamp));
|
||||||
|
|
|
@ -23,7 +23,7 @@ import mage.util.functions.AbilityApplier;
|
||||||
*/
|
*/
|
||||||
public final class MercurialPretender extends CardImpl {
|
public final class MercurialPretender extends CardImpl {
|
||||||
|
|
||||||
private static final String effectText = "as a copy of any creature you control except it gains \"{2}{U}{U}: Return this creature to its owner's hand.\"";
|
private static final String effectText = "as a copy of any creature you control, except it has \"{2}{U}{U}: Return this creature to its owner's hand.\"";
|
||||||
|
|
||||||
public MercurialPretender(UUID ownerId, CardSetInfo setInfo) {
|
public MercurialPretender(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}");
|
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}");
|
||||||
|
@ -33,8 +33,8 @@ public final class MercurialPretender extends CardImpl {
|
||||||
this.power = new MageInt(0);
|
this.power = new MageInt(0);
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// You may have Mercurial Pretender enter the battlefield as a copy of any creature you control
|
// You may have Mercurial Pretender enter the battlefield as a copy of any creature you control,
|
||||||
// except it gains "{2}{U}{U}: Return this creature to its owner's hand."
|
// except it has "{2}{U}{U}: Return this creature to its owner's hand."
|
||||||
Effect effect = new CopyPermanentEffect(new FilterControlledCreaturePermanent(),
|
Effect effect = new CopyPermanentEffect(new FilterControlledCreaturePermanent(),
|
||||||
new AbilityApplier(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl("{2}{U}{U}"))));
|
new AbilityApplier(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl("{2}{U}{U}"))));
|
||||||
effect.setText(effectText);
|
effect.setText(effectText);
|
||||||
|
|
|
@ -48,8 +48,8 @@ public final class MinionReflector extends CardImpl {
|
||||||
"entered the battlefield?"),
|
"entered the battlefield?"),
|
||||||
filter, false, SetTargetPointer.PERMANENT,
|
filter, false, SetTargetPointer.PERMANENT,
|
||||||
"Whenever a nontoken creature enters the battlefield under your control, " +
|
"Whenever a nontoken creature enters the battlefield under your control, " +
|
||||||
"you may pay 2. If you do, create a token that's a copy of that creature. " +
|
"you may pay 2. If you do, create a token that's a copy of that creature, " +
|
||||||
"That token has haste and \"At the beginning of the end step, sacrifice this " +
|
"except it has haste and \"At the beginning of the end step, sacrifice this " +
|
||||||
"permanent.\"");
|
"permanent.\"");
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ class MinionReflectorEffect extends OneShotEffect {
|
||||||
|
|
||||||
public MinionReflectorEffect() {
|
public MinionReflectorEffect() {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
this.staticText = "create a token that's a copy of that creature. That token has haste and \"At the beginning of the end step, sacrifice this permanent.";
|
this.staticText = "create a token that's a copy of that creature, except it has haste and \"At the beginning of the end step, sacrifice this permanent.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public MinionReflectorEffect(final MinionReflectorEffect effect) {
|
public MinionReflectorEffect(final MinionReflectorEffect effect) {
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class MizziumTransreliquat extends CardImpl {
|
||||||
ability.addTarget(new TargetArtifactPermanent());
|
ability.addTarget(new TargetArtifactPermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// {1}{U}{R}: Mizzium Transreliquat becomes a copy of target artifact and gains this ability.
|
// {1}{U}{R}: Mizzium Transreliquat becomes a copy of target artifact, except it has this ability.
|
||||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl("{1}{U}{R}"));
|
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MizziumTransreliquatCopyAndGainAbilityEffect(), new ManaCostsImpl("{1}{U}{R}"));
|
||||||
ability.addTarget(new TargetArtifactPermanent());
|
ability.addTarget(new TargetArtifactPermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
@ -79,7 +79,7 @@ class MizziumTransreliquatCopyAndGainAbilityEffect extends OneShotEffect {
|
||||||
|
|
||||||
public MizziumTransreliquatCopyAndGainAbilityEffect() {
|
public MizziumTransreliquatCopyAndGainAbilityEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
this.staticText = "{this} becomes a copy of target artifact and gains this ability";
|
this.staticText = "{this} becomes a copy of target artifact, except it has this ability";
|
||||||
}
|
}
|
||||||
|
|
||||||
public MizziumTransreliquatCopyAndGainAbilityEffect(final MizziumTransreliquatCopyAndGainAbilityEffect effect) {
|
public MizziumTransreliquatCopyAndGainAbilityEffect(final MizziumTransreliquatCopyAndGainAbilityEffect effect) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ public final class MoggSalvage extends CardImpl {
|
||||||
public MoggSalvage(UUID ownerId, CardSetInfo setInfo) {
|
public MoggSalvage(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}");
|
||||||
|
|
||||||
// If an opponent controls an Island and you control a Mountain, you may cast Mogg Salvage without paying its mana cost.
|
// If an opponent controls an Island and you control a Mountain, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls an Island and you control a Mountain",
|
Condition condition = new CompoundCondition("If an opponent controls an Island and you control a Mountain",
|
||||||
new OpponentControlsPermanentCondition(filterIsland),
|
new OpponentControlsPermanentCondition(filterIsland),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterMountain));
|
new PermanentsOnTheBattlefieldCondition(filterMountain));
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class PatriciansScorn extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{W}");
|
||||||
|
|
||||||
|
|
||||||
// If you've cast another white spell this turn, you may cast Patrician's Scorn without paying its mana cost.
|
// If you've cast another white spell this turn, you may cast this spell without paying its mana cost.
|
||||||
this.addAbility(new AlternativeCostSourceAbility(new CastWhiteSpellThisTurnCondition()), new PatriciansScornWatcher());
|
this.addAbility(new AlternativeCostSourceAbility(new CastWhiteSpellThisTurnCondition()), new PatriciansScornWatcher());
|
||||||
// Destroy all enchantments.
|
// Destroy all enchantments.
|
||||||
this.getSpellAbility().addEffect(new DestroyAllEffect(StaticFilters.FILTER_ENCHANTMENT_PERMANENT));
|
this.getSpellAbility().addEffect(new DestroyAllEffect(StaticFilters.FILTER_ENCHANTMENT_PERMANENT));
|
||||||
|
@ -87,7 +87,7 @@ class PatriciansScornWatcher extends Watcher {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void watch(GameEvent event, Game game) {
|
public void watch(GameEvent event, Game game) {
|
||||||
if (condition == true) { //no need to check - condition has already occured
|
if (condition) { //no need to check - condition has already occured
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (event.getType() == EventType.SPELL_CAST && controllerId.equals(event.getPlayerId())) {
|
if (event.getType() == EventType.SPELL_CAST && controllerId.equals(event.getPlayerId())) {
|
||||||
|
|
|
@ -26,7 +26,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class PhantasmalImage extends CardImpl {
|
public final class PhantasmalImage extends CardImpl {
|
||||||
|
|
||||||
private static final String effectText = "a copy of any creature on the battlefield, except it's an Illusion in addition to its other types and it gains \"When this creature becomes the target of a spell or ability, sacrifice it.\"";
|
private static final String effectText = "a copy of any creature on the battlefield, except it's an Illusion in addition to its other types and it has \"When this creature becomes the target of a spell or ability, sacrifice it.\"";
|
||||||
|
|
||||||
ApplyToPermanent phantasmalImageApplier = new ApplyToPermanent() {
|
ApplyToPermanent phantasmalImageApplier = new ApplyToPermanent() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -62,7 +62,7 @@ public final class PhantasmalImage extends CardImpl {
|
||||||
|
|
||||||
// You may have Phantasmal Image enter the battlefield as a copy of any creature
|
// You may have Phantasmal Image enter the battlefield as a copy of any creature
|
||||||
// on the battlefield, except it's an Illusion in addition to its other types and
|
// on the battlefield, except it's an Illusion in addition to its other types and
|
||||||
// it gains "When this creature becomes the target of a spell or ability, sacrifice it."
|
// it has "When this creature becomes the target of a spell or ability, sacrifice it."
|
||||||
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, phantasmalImageApplier);
|
Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, phantasmalImageApplier);
|
||||||
effect.setText(effectText);
|
effect.setText(effectText);
|
||||||
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
||||||
|
|
|
@ -40,7 +40,7 @@ public final class ProgenitorMimic extends CardImpl {
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// You may have Progenitor Mimic enter the battlefield as a copy of any creature on the battlefield
|
// You may have Progenitor Mimic enter the battlefield as a copy of any creature on the battlefield
|
||||||
// except it gains "At the beginning of your upkeep, if this creature isn't a token,
|
// except it has "At the beginning of your upkeep, if this creature isn't a token,
|
||||||
// create a token that's a copy of this creature."
|
// create a token that's a copy of this creature."
|
||||||
Effect effect = new CreateTokenCopySourceEffect();
|
Effect effect = new CreateTokenCopySourceEffect();
|
||||||
effect.setText("create a token that's a copy of this creature");
|
effect.setText("create a token that's a copy of this creature");
|
||||||
|
@ -52,7 +52,7 @@ public final class ProgenitorMimic extends CardImpl {
|
||||||
"At the beginning of your upkeep, if this creature isn't a token, create a token that's a copy of this creature.")
|
"At the beginning of your upkeep, if this creature isn't a token, create a token that's a copy of this creature.")
|
||||||
);
|
);
|
||||||
effect = new CopyPermanentEffect(applier);
|
effect = new CopyPermanentEffect(applier);
|
||||||
effect.setText("as a copy of any creature on the battlefield except it gains \"At the beginning of your upkeep, if this creature isn't a token, create a token that's a copy of this creature.\"");
|
effect.setText("as a copy of any creature on the battlefield except it has \"At the beginning of your upkeep, if this creature isn't a token, create a token that's a copy of this creature.\"");
|
||||||
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
this.addAbility(new EntersBattlefieldAbility(effect, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ public final class RefreshingRain extends CardImpl {
|
||||||
public RefreshingRain(UUID ownerId, CardSetInfo setInfo) {
|
public RefreshingRain(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{G}");
|
||||||
|
|
||||||
// If an opponent controls a Swamp and you control a Forest, you may cast Refreshing Rain without paying its mana cost.
|
// If an opponent controls a Swamp and you control a Forest, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Swamp and you control a Forest",
|
Condition condition = new CompoundCondition("If an opponent controls a Swamp and you control a Forest",
|
||||||
new OpponentControlsPermanentCondition(filterSwamp),
|
new OpponentControlsPermanentCondition(filterSwamp),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterForest));
|
new PermanentsOnTheBattlefieldCondition(filterForest));
|
||||||
|
|
|
@ -35,7 +35,7 @@ public final class RushwoodLegate extends CardImpl {
|
||||||
this.power = new MageInt(2);
|
this.power = new MageInt(2);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// If an opponent controls an Island and you control a Forest, you may cast Rushwood Legate without paying its mana cost.
|
// If an opponent controls an Island and you control a Forest, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls an Island and you control a Forest",
|
Condition condition = new CompoundCondition("If an opponent controls an Island and you control a Forest",
|
||||||
new OpponentControlsPermanentCondition(filterIsland),
|
new OpponentControlsPermanentCondition(filterIsland),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterForest));
|
new PermanentsOnTheBattlefieldCondition(filterForest));
|
||||||
|
|
|
@ -32,15 +32,14 @@ public final class SaprazzanLegate extends CardImpl {
|
||||||
|
|
||||||
public SaprazzanLegate(UUID ownerId, CardSetInfo setInfo) {
|
public SaprazzanLegate(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}");
|
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}");
|
||||||
this.subtype.add(SubType.MERFOLK);
|
this.subtype.add(SubType.MERFOLK, SubType.SOLDIER);
|
||||||
this.subtype.add(SubType.SOLDIER);
|
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(3);
|
this.toughness = new MageInt(3);
|
||||||
|
|
||||||
// Flying
|
// Flying
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
// If an opponent controls a Mountain and you control an Island, you may cast Saprazzan Legate without paying its mana cost.
|
// If an opponent controls a Mountain and you control an Island, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Mountain and you control an Island",
|
Condition condition = new CompoundCondition("If an opponent controls a Mountain and you control an Island",
|
||||||
new OpponentControlsPermanentCondition(filterMountain),
|
new OpponentControlsPermanentCondition(filterMountain),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterIsland));
|
new PermanentsOnTheBattlefieldCondition(filterIsland));
|
||||||
|
|
|
@ -34,7 +34,7 @@ public final class SivvisRuse extends CardImpl {
|
||||||
public SivvisRuse(UUID ownerId, CardSetInfo setInfo) {
|
public SivvisRuse(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{W}{W}");
|
||||||
|
|
||||||
// If an opponent controls a Mountain and you control a Plains, you may cast Sivvi's Ruse without paying its mana cost.
|
// If an opponent controls a Mountain and you control a Plains, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Mountain and you control a Plains",
|
Condition condition = new CompoundCondition("If an opponent controls a Mountain and you control a Plains",
|
||||||
new OpponentControlsPermanentCondition(filterMountain),
|
new OpponentControlsPermanentCondition(filterMountain),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterPlains));
|
new PermanentsOnTheBattlefieldCondition(filterPlains));
|
||||||
|
|
|
@ -43,7 +43,7 @@ public final class SplinterTwin extends CardImpl {
|
||||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
// Enchanted creature has "{tap}: Create a token that's a copy of this creature. That token has haste. Exile it at the beginning of the next end step."
|
// Enchanted creature has "{tap}: Create a token that's a copy of this creature, except it has haste. Exile it at the beginning of the next end step."
|
||||||
SimpleActivatedAbility gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SplinterTwinEffect(), new TapSourceCost());
|
SimpleActivatedAbility gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SplinterTwinEffect(), new TapSourceCost());
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA)));
|
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA)));
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ class SplinterTwinEffect extends OneShotEffect {
|
||||||
|
|
||||||
public SplinterTwinEffect() {
|
public SplinterTwinEffect() {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
this.staticText = "Create a token that's a copy of this creature. That token has haste. Exile it at the beginning of the next end step";
|
this.staticText = "Create a token that's a copy of this creature, except it has haste. Exile it at the beginning of the next end step";
|
||||||
}
|
}
|
||||||
|
|
||||||
public SplinterTwinEffect(final SplinterTwinEffect effect) {
|
public SplinterTwinEffect(final SplinterTwinEffect effect) {
|
||||||
|
|
|
@ -34,7 +34,7 @@ public final class Submerge extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{U}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{U}");
|
||||||
|
|
||||||
|
|
||||||
// If an opponent controls a Forest and you control an Island, you may cast Submerge without paying its mana cost.
|
// If an opponent controls a Forest and you control an Island, you may cast this spell without paying its mana cost.
|
||||||
Condition condition = new CompoundCondition("If an opponent controls a Forest and you control an Island",
|
Condition condition = new CompoundCondition("If an opponent controls a Forest and you control an Island",
|
||||||
new OpponentControlsPermanentCondition(filterForest),
|
new OpponentControlsPermanentCondition(filterForest),
|
||||||
new PermanentsOnTheBattlefieldCondition(filterIsland));
|
new PermanentsOnTheBattlefieldCondition(filterIsland));
|
||||||
|
|
|
@ -28,7 +28,7 @@ public final class TemptWithImmortality extends CardImpl {
|
||||||
public TemptWithImmortality(UUID ownerId, CardSetInfo setInfo) {
|
public TemptWithImmortality(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{B}");
|
||||||
|
|
||||||
// Tempting offer - Return a creature card from your graveyard to the battlefield. Each opponent may return a creature card from their graveyard to the battlefield. For each player who does, return a creature card from your graveyard to the battlefield.
|
// Tempting offer - Return a creature card from your graveyard to the battlefield. Each opponent may return a creature card from their graveyard to the battlefield. For each opponent who does, return a creature card from your graveyard to the battlefield.
|
||||||
this.getSpellAbility().addEffect(new TemptWithImmortalityEffect());
|
this.getSpellAbility().addEffect(new TemptWithImmortalityEffect());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ class TemptWithImmortalityEffect extends OneShotEffect {
|
||||||
|
|
||||||
public TemptWithImmortalityEffect() {
|
public TemptWithImmortalityEffect() {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
this.staticText = "<i>Tempting offer</i> — Return a creature card from your graveyard to the battlefield. Each opponent may return a creature card from their graveyard to the battlefield. For each player who does, return a creature card from your graveyard to the battlefield";
|
this.staticText = "<i>Tempting offer</i> — Return a creature card from your graveyard to the battlefield. Each opponent may return a creature card from their graveyard to the battlefield. For each opponent who does, return a creature card from your graveyard to the battlefield";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ public final class TemptWithVengeance extends CardImpl {
|
||||||
public TemptWithVengeance(UUID ownerId, CardSetInfo setInfo) {
|
public TemptWithVengeance(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
|
||||||
|
|
||||||
// Tempting offer - create X 1/1 red Elemental creature tokens with haste. Each opponent may create X 1/1 red Elemental creature tokens with haste. For each player who does, create X 1/1 red Elemental creature tokens with haste.
|
// Tempting offer - create X 1/1 red Elemental creature tokens with haste. Each opponent may create X 1/1 red Elemental creature tokens with haste. For each opponent who does, create X 1/1 red Elemental creature tokens with haste.
|
||||||
this.getSpellAbility().addEffect(new TemptWithVengeanceEffect());
|
this.getSpellAbility().addEffect(new TemptWithVengeanceEffect());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ class TemptWithVengeanceEffect extends OneShotEffect {
|
||||||
|
|
||||||
public TemptWithVengeanceEffect() {
|
public TemptWithVengeanceEffect() {
|
||||||
super(Outcome.PutLandInPlay);
|
super(Outcome.PutLandInPlay);
|
||||||
this.staticText = "<i>Tempting offer</i> — create X 1/1 red Elemental creature tokens with haste. Each opponent may create X 1/1 red Elemental creature tokens with haste. For each player who does, create X 1/1 red Elemental creature tokens with haste";
|
this.staticText = "<i>Tempting offer</i> — create X 1/1 red Elemental creature tokens with haste. Each opponent may create X 1/1 red Elemental creature tokens with haste. For each opponent who does, create X 1/1 red Elemental creature tokens with haste";
|
||||||
}
|
}
|
||||||
|
|
||||||
public TemptWithVengeanceEffect(final TemptWithVengeanceEffect effect) {
|
public TemptWithVengeanceEffect(final TemptWithVengeanceEffect effect) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class ThespiansStage extends CardImpl {
|
||||||
// {T}: Add 1.
|
// {T}: Add 1.
|
||||||
this.addAbility(new ColorlessManaAbility());
|
this.addAbility(new ColorlessManaAbility());
|
||||||
|
|
||||||
// 2, {T}: Thespian's Stage becomes a copy of target land and gains this ability.
|
// 2, {T}: Thespian's Stage becomes a copy of target land, except it has this ability.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ThespiansStageCopyEffect(), new GenericManaCost(2));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ThespiansStageCopyEffect(), new GenericManaCost(2));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addTarget(new TargetLandPermanent());
|
ability.addTarget(new TargetLandPermanent());
|
||||||
|
@ -52,7 +52,7 @@ class ThespiansStageCopyEffect extends OneShotEffect {
|
||||||
|
|
||||||
public ThespiansStageCopyEffect() {
|
public ThespiansStageCopyEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
this.staticText = "{this} becomes a copy of target land and gains this ability";
|
this.staticText = "{this} becomes a copy of target land, except it has this ability";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ThespiansStageCopyEffect(final ThespiansStageCopyEffect effect) {
|
public ThespiansStageCopyEffect(final ThespiansStageCopyEffect effect) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ public final class Twinflame extends CardImpl {
|
||||||
|
|
||||||
// Strive - Twinflame costs 2R more to cast for each target beyond the first.
|
// Strive - Twinflame costs 2R more to cast for each target beyond the first.
|
||||||
this.addAbility(new StriveAbility("{2}{R}"));
|
this.addAbility(new StriveAbility("{2}{R}"));
|
||||||
// Choose any number of target creatures you control. For each of them, create a token that's a copy of that creature. Those tokens have haste. Exile them at the beginning of the next end step.
|
// Choose any number of target creatures you control. For each of them, create a token that's a copy of that creature, except it has haste. Exile them at the beginning of the next end step.
|
||||||
this.getSpellAbility().addEffect(new TwinflameCopyEffect());
|
this.getSpellAbility().addEffect(new TwinflameCopyEffect());
|
||||||
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent(0, Integer.MAX_VALUE, new FilterControlledCreaturePermanent(), false));
|
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent(0, Integer.MAX_VALUE, new FilterControlledCreaturePermanent(), false));
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ class TwinflameCopyEffect extends OneShotEffect {
|
||||||
|
|
||||||
public TwinflameCopyEffect() {
|
public TwinflameCopyEffect() {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
this.staticText = "Choose any number of target creatures you control. For each of them, create a token that's a copy of that creature. Those tokens have haste. Exile them at the beginning of the next end step";
|
this.staticText = "Choose any number of target creatures you control. For each of them, create a token that's a copy of that creature, except it has haste. Exile them at the beginning of the next end step";
|
||||||
}
|
}
|
||||||
|
|
||||||
public TwinflameCopyEffect(final TwinflameCopyEffect effect) {
|
public TwinflameCopyEffect(final TwinflameCopyEffect effect) {
|
||||||
|
|
|
@ -40,7 +40,7 @@ public final class UnstableShapeshifter extends CardImpl {
|
||||||
this.power = new MageInt(0);
|
this.power = new MageInt(0);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// Whenever another creature enters the battlefield, Unstable Shapeshifter becomes a copy of that creature and gains this ability.
|
// Whenever another creature enters the battlefield, Unstable Shapeshifter becomes a copy of that creature, except it has this ability.
|
||||||
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new UnstableShapeshifterEffect(), filterAnotherCreature, false, SetTargetPointer.PERMANENT, ""));
|
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new UnstableShapeshifterEffect(), filterAnotherCreature, false, SetTargetPointer.PERMANENT, ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ class UnstableShapeshifterEffect extends OneShotEffect {
|
||||||
|
|
||||||
public UnstableShapeshifterEffect() {
|
public UnstableShapeshifterEffect() {
|
||||||
super(Outcome.Copy);
|
super(Outcome.Copy);
|
||||||
this.staticText = "{this} becomes a copy of that creature and gains this ability";
|
this.staticText = "{this} becomes a copy of that creature, except it has this ability";
|
||||||
}
|
}
|
||||||
|
|
||||||
public UnstableShapeshifterEffect(final UnstableShapeshifterEffect effect) {
|
public UnstableShapeshifterEffect(final UnstableShapeshifterEffect effect) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ import mage.util.functions.ApplyToPermanent;
|
||||||
*/
|
*/
|
||||||
public final class VesuvanDoppelganger extends CardImpl {
|
public final class VesuvanDoppelganger extends CardImpl {
|
||||||
|
|
||||||
private static final String rule = "You may have {this} enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains \"At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability.\"";
|
private static final String rule = "You may have {this} enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it has \"At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color and it has this ability.\"";
|
||||||
|
|
||||||
public VesuvanDoppelganger(UUID ownerId, CardSetInfo setInfo) {
|
public VesuvanDoppelganger(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}");
|
||||||
|
@ -38,7 +38,7 @@ public final class VesuvanDoppelganger extends CardImpl {
|
||||||
this.power = new MageInt(0);
|
this.power = new MageInt(0);
|
||||||
this.toughness = new MageInt(0);
|
this.toughness = new MageInt(0);
|
||||||
|
|
||||||
// You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability."
|
// You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it has "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color and it has this ability."
|
||||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new EntersBattlefieldEffect(new VesuvanDoppelgangerCopyEffect(), rule, true));
|
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new EntersBattlefieldEffect(new VesuvanDoppelgangerCopyEffect(), rule, true));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ public final class VesuvanDoppelganger extends CardImpl {
|
||||||
|
|
||||||
class VesuvanDoppelgangerCopyEffect extends OneShotEffect {
|
class VesuvanDoppelgangerCopyEffect extends OneShotEffect {
|
||||||
|
|
||||||
private static final String rule2 = "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability.";
|
private static final String rule2 = "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color and it has this ability.";
|
||||||
|
|
||||||
public VesuvanDoppelgangerCopyEffect() {
|
public VesuvanDoppelgangerCopyEffect() {
|
||||||
super(Outcome.Copy);
|
super(Outcome.Copy);
|
||||||
|
|
|
@ -58,7 +58,7 @@ public final class VesuvanShapeshifter extends CardImpl {
|
||||||
ability.setWorksFaceDown(false);
|
ability.setWorksFaceDown(false);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// and gains "At the beginning of your upkeep, you may turn this creature face down".
|
// and has "At the beginning of your upkeep, you may turn this creature face down".
|
||||||
effect = new VesuvanShapeshifterFaceDownEffect();
|
effect = new VesuvanShapeshifterFaceDownEffect();
|
||||||
ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, true);
|
ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, true);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
@ -102,7 +102,7 @@ class VesuvanShapeshifterEffect extends OneShotEffect {
|
||||||
|
|
||||||
public VesuvanShapeshifterEffect() {
|
public VesuvanShapeshifterEffect() {
|
||||||
super(Outcome.Copy);
|
super(Outcome.Copy);
|
||||||
staticText = "have {this} become a copy of a creature and gain this ability";
|
staticText = "have {this} become a copy of a creature, except it has this ability";
|
||||||
}
|
}
|
||||||
|
|
||||||
public VesuvanShapeshifterEffect(final VesuvanShapeshifterEffect effect) {
|
public VesuvanShapeshifterEffect(final VesuvanShapeshifterEffect effect) {
|
||||||
|
|
|
@ -230,7 +230,7 @@ public class AlternativeCostSourceAbility extends StaticAbility implements Alter
|
||||||
if (condition == null || alternateCosts.size() == 1) {
|
if (condition == null || alternateCosts.size() == 1) {
|
||||||
sb.append(" rather than pay this spell's mana cost");
|
sb.append(" rather than pay this spell's mana cost");
|
||||||
} else if (alternateCosts.isEmpty()) {
|
} else if (alternateCosts.isEmpty()) {
|
||||||
sb.append("cast {this} without paying its mana cost");
|
sb.append("cast this spell without paying its mana cost");
|
||||||
}
|
}
|
||||||
sb.append('.');
|
sb.append('.');
|
||||||
if (numberCosts == 1 && remarkText != null) {
|
if (numberCosts == 1 && remarkText != null) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect {
|
||||||
|
|
||||||
private final UUID playerId;
|
private final UUID playerId;
|
||||||
private final CardType additionalCardType;
|
private final CardType additionalCardType;
|
||||||
private boolean gainsHaste;
|
private boolean hasHaste;
|
||||||
private final int number;
|
private final int number;
|
||||||
private List<Permanent> addedTokenPermanents;
|
private List<Permanent> addedTokenPermanents;
|
||||||
private SubType additionalSubType;
|
private SubType additionalSubType;
|
||||||
|
@ -62,12 +62,12 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect {
|
||||||
this(playerId, null, false);
|
this(playerId, null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean gainsHaste) {
|
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean hasHaste) {
|
||||||
this(playerId, additionalCardType, gainsHaste, 1);
|
this(playerId, additionalCardType, hasHaste, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean gainsHaste, int number) {
|
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean hasHaste, int number) {
|
||||||
this(playerId, additionalCardType, gainsHaste, number, false, false);
|
this(playerId, additionalCardType, hasHaste, number, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,24 +75,24 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect {
|
||||||
* @param playerId null the token is controlled/owned by the controller of
|
* @param playerId null the token is controlled/owned by the controller of
|
||||||
* the source ability
|
* the source ability
|
||||||
* @param additionalCardType the token gains this card type in addition
|
* @param additionalCardType the token gains this card type in addition
|
||||||
* @param gainsHaste the token gains haste
|
* @param hasHaste the token gains haste
|
||||||
* @param number number of tokens to put into play
|
* @param number number of tokens to put into play
|
||||||
* @param tapped
|
* @param tapped
|
||||||
* @param attacking
|
* @param attacking
|
||||||
*/
|
*/
|
||||||
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean gainsHaste, int number, boolean tapped, boolean attacking) {
|
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean hasHaste, int number, boolean tapped, boolean attacking) {
|
||||||
this(playerId, additionalCardType, gainsHaste, number, tapped, attacking, null);
|
this(playerId, additionalCardType, hasHaste, number, tapped, attacking, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean gainsHaste, int number, boolean tapped, boolean attacking, UUID attackedPlayer) {
|
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean hasHaste, int number, boolean tapped, boolean attacking, UUID attackedPlayer) {
|
||||||
this(playerId, additionalCardType, gainsHaste, number, tapped, attacking, attackedPlayer, Integer.MIN_VALUE, Integer.MIN_VALUE, false);
|
this(playerId, additionalCardType, hasHaste, number, tapped, attacking, attackedPlayer, Integer.MIN_VALUE, Integer.MIN_VALUE, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean gainsHaste, int number, boolean tapped, boolean attacking, UUID attackedPlayer, int power, int toughness, boolean gainsFlying) {
|
public CreateTokenCopyTargetEffect(UUID playerId, CardType additionalCardType, boolean hasHaste, int number, boolean tapped, boolean attacking, UUID attackedPlayer, int power, int toughness, boolean gainsFlying) {
|
||||||
super(Outcome.PutCreatureInPlay);
|
super(Outcome.PutCreatureInPlay);
|
||||||
this.playerId = playerId;
|
this.playerId = playerId;
|
||||||
this.additionalCardType = additionalCardType;
|
this.additionalCardType = additionalCardType;
|
||||||
this.gainsHaste = gainsHaste;
|
this.hasHaste = hasHaste;
|
||||||
this.addedTokenPermanents = new ArrayList<>();
|
this.addedTokenPermanents = new ArrayList<>();
|
||||||
this.number = number;
|
this.number = number;
|
||||||
this.tapped = tapped;
|
this.tapped = tapped;
|
||||||
|
@ -107,7 +107,7 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect {
|
||||||
super(effect);
|
super(effect);
|
||||||
this.playerId = effect.playerId;
|
this.playerId = effect.playerId;
|
||||||
this.additionalCardType = effect.additionalCardType;
|
this.additionalCardType = effect.additionalCardType;
|
||||||
this.gainsHaste = effect.gainsHaste;
|
this.hasHaste = effect.hasHaste;
|
||||||
this.addedTokenPermanents = new ArrayList<>(effect.addedTokenPermanents);
|
this.addedTokenPermanents = new ArrayList<>(effect.addedTokenPermanents);
|
||||||
this.number = effect.number;
|
this.number = effect.number;
|
||||||
this.additionalSubType = effect.additionalSubType;
|
this.additionalSubType = effect.additionalSubType;
|
||||||
|
@ -187,7 +187,7 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect {
|
||||||
if (additionalCardType != null && !token.getCardType().contains(additionalCardType)) {
|
if (additionalCardType != null && !token.getCardType().contains(additionalCardType)) {
|
||||||
token.addCardType(additionalCardType);
|
token.addCardType(additionalCardType);
|
||||||
}
|
}
|
||||||
if (gainsHaste) {
|
if (hasHaste) {
|
||||||
token.addAbility(HasteAbility.getInstance());
|
token.addAbility(HasteAbility.getInstance());
|
||||||
}
|
}
|
||||||
if (gainsFlying) {
|
if (gainsFlying) {
|
||||||
|
|
Loading…
Reference in a new issue