mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 19:41:59 -08:00
[CLB] Implemented Irenicus's Vile Duplication
This commit is contained in:
parent
a321468d7d
commit
d16b28bad2
3 changed files with 71 additions and 23 deletions
37
Mage.Sets/src/mage/cards/i/IrenicussVileDuplication.java
Normal file
37
Mage.Sets/src/mage/cards/i/IrenicussVileDuplication.java
Normal file
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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<? extends Ability> 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<? extends Ability> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue