diff --git a/Mage.Sets/src/mage/cards/i/IrenicussVileDuplication.java b/Mage.Sets/src/mage/cards/i/IrenicussVileDuplication.java new file mode 100644 index 00000000000..85eba01913d --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/IrenicussVileDuplication.java @@ -0,0 +1,37 @@ +package mage.cards.i; + +import mage.abilities.effects.common.CreateTokenCopyTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetControlledCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class IrenicussVileDuplication extends CardImpl { + + public IrenicussVileDuplication(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{U}"); + + // Create a token that's a copy of target creature you control, except the token has flying and isn't legendary if that creature is legendary. + this.getSpellAbility().addEffect(new CreateTokenCopyTargetEffect() + .addAdditionalAbilities(FlyingAbility.getInstance()) + .setIsntLegendary(true) + .setText("create a token that's a copy of target creature you control, " + + "except the token has flying and isn't legendary if that creature is legendary")); + this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); + } + + private IrenicussVileDuplication(final IrenicussVileDuplication card) { + super(card); + } + + @Override + public IrenicussVileDuplication copy() { + return new IrenicussVileDuplication(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java index 9cb3d85785e..d792d33b108 100644 --- a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java +++ b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java @@ -49,6 +49,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet { cards.add(new SetCardInfo("Goggles of Night", 74, Rarity.COMMON, mage.cards.g.GogglesOfNight.class)); cards.add(new SetCardInfo("Gorion, Wise Mentor", 276, Rarity.RARE, mage.cards.g.GorionWiseMentor.class)); cards.add(new SetCardInfo("Imoen, Mystic Trickster", 77, Rarity.UNCOMMON, mage.cards.i.ImoenMysticTrickster.class)); + cards.add(new SetCardInfo("Irenicus's Vile Duplication", 78, Rarity.UNCOMMON, mage.cards.i.IrenicussVileDuplication.class)); cards.add(new SetCardInfo("Island", 455, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Jaheira's Respite", 238, Rarity.RARE, mage.cards.j.JaheirasRespite.class)); cards.add(new SetCardInfo("Korlessa, Scale Singer", 280, Rarity.UNCOMMON, mage.cards.k.KorlessaScaleSinger.class)); diff --git a/Mage/src/main/java/mage/abilities/effects/common/CreateTokenCopyTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CreateTokenCopyTargetEffect.java index 767b9acc848..103b596e4b1 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CreateTokenCopyTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CreateTokenCopyTargetEffect.java @@ -318,40 +318,64 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect { return addedTokenPermanents; } - public void setAdditionalSubType(SubType additionalSubType) { + public CreateTokenCopyTargetEffect setAdditionalSubType(SubType additionalSubType) { this.additionalSubType = additionalSubType; + return this; } - public void setOnlySubType(SubType onlySubType) { + public CreateTokenCopyTargetEffect setOnlySubType(SubType onlySubType) { this.onlySubType = onlySubType; + return this; } - public void setOnlyColor(ObjectColor color) { + public CreateTokenCopyTargetEffect setOnlyColor(ObjectColor color) { this.color = color; + return this; } - public void setUseLKI(boolean useLKI) { + public CreateTokenCopyTargetEffect setUseLKI(boolean useLKI) { this.useLKI = useLKI; + return this; } - public void setBecomesArtifact(boolean becomesArtifact) { + public CreateTokenCopyTargetEffect setBecomesArtifact(boolean becomesArtifact) { this.becomesArtifact = becomesArtifact; + return this; } - public void setIsntLegendary(boolean isntLegendary) { + public CreateTokenCopyTargetEffect setIsntLegendary(boolean isntLegendary) { this.isntLegendary = isntLegendary; + return this; } - public void setHasHaste(boolean hasHaste) { + public CreateTokenCopyTargetEffect setHasHaste(boolean hasHaste) { this.hasHaste = hasHaste; + return this; } - public void setStartingLoyalty(int startingLoyalty) { + public CreateTokenCopyTargetEffect setStartingLoyalty(int startingLoyalty) { this.startingLoyalty = startingLoyalty; + return this; } - public void setNumber(int number) { + public CreateTokenCopyTargetEffect setNumber(int number) { this.number = number; + return this; + } + + public CreateTokenCopyTargetEffect addAbilityClassesToRemoveFromTokens(Class clazz) { + this.abilityClazzesToRemove.add(clazz);return this; + } + + public CreateTokenCopyTargetEffect addAdditionalAbilities(Ability... abilities) { + this.additionalAbilities.addAll(Arrays.asList(abilities)); + return this; + } + + + public CreateTokenCopyTargetEffect setSavedPermanent(Permanent savedPermanent) { + this.savedPermanent = savedPermanent; + return this; } public void sacrificeTokensCreatedAtNextEndStep(Game game, Ability source) { @@ -394,18 +418,4 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect { game.addDelayedTriggeredAbility(exileAbility, source); } - - public void addAbilityClassesToRemoveFromTokens(Class clazz) { - this.abilityClazzesToRemove.add(clazz); - } - - public void addAdditionalAbilities(Ability... abilities) { - this.additionalAbilities.addAll(Arrays.asList(abilities)); - } - - - public CreateTokenCopyTargetEffect setSavedPermanent(Permanent savedPermanent) { - this.savedPermanent = savedPermanent; - return this; - } }