[ONE] Implement Dragonwing Glider

This commit is contained in:
theelk801 2023-01-13 21:29:02 -05:00
parent 4d53595f07
commit 73037f710e
6 changed files with 119 additions and 1 deletions

View file

@ -0,0 +1,57 @@
package mage.cards.d;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostImpl;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.HasteAbility;
import mage.constants.AttachmentType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.abilities.keyword.ForMirrodinAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
/**
* @author TheElk801
*/
public final class DragonwingGlider extends CardImpl {
public DragonwingGlider(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}{R}{R}");
this.subtype.add(SubType.EQUIPMENT);
// For Mirrodin!
this.addAbility(new ForMirrodinAbility());
// Equipped creature gets +2/+2 and has flying and haste.
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2));
ability.addEffect(new GainAbilityAttachedEffect(
FlyingAbility.getInstance(), AttachmentType.EQUIPMENT
).setText("and has flying"));
ability.addEffect(new GainAbilityAttachedEffect(
HasteAbility.getInstance(), AttachmentType.EQUIPMENT
).setText("and haste"));
this.addAbility(ability);
// Equip {3}{R}{R}
this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{3}{R}{R}")));
}
private DragonwingGlider(final DragonwingGlider card) {
super(card);
}
@Override
public DragonwingGlider copy() {
return new DragonwingGlider(this);
}
}

View file

@ -23,6 +23,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet {
cards.add(new SetCardInfo("Blackcleave Cliffs", 248, Rarity.RARE, mage.cards.b.BlackcleaveCliffs.class));
cards.add(new SetCardInfo("Blue Sun's Twilight", 43, Rarity.RARE, mage.cards.b.BlueSunsTwilight.class));
cards.add(new SetCardInfo("Copperline Gorge", 249, Rarity.RARE, mage.cards.c.CopperlineGorge.class));
cards.add(new SetCardInfo("Dragonwing Glider", 126, Rarity.RARE, mage.cards.d.DragonwingGlider.class));
cards.add(new SetCardInfo("Forest", 276, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Island", 273, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Mountain", 275, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS));

View file

@ -0,0 +1,31 @@
package mage.abilities.keyword;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.CreateTokenAttachSourceEffect;
import mage.game.permanent.token.PhyrexianGermToken;
import mage.game.permanent.token.RebelRedToken;
/**
* @author TheElk801
*/
public class ForMirrodinAbility extends EntersBattlefieldTriggeredAbility {
public ForMirrodinAbility() {
super(new CreateTokenAttachSourceEffect(new RebelRedToken()));
}
public ForMirrodinAbility(final ForMirrodinAbility ability) {
super(ability);
}
@Override
public String getRule() {
return "For Mirrodin! <i>(When this Equipment enters the battlefield, " +
"create a 2/2 red Rebel creature token, then attach this to it.)</i>";
}
@Override
public ForMirrodinAbility copy() {
return new ForMirrodinAbility(this);
}
}

View file

@ -21,7 +21,7 @@ public class LivingWeaponAbility extends EntersBattlefieldTriggeredAbility {
}
@Override
public EntersBattlefieldTriggeredAbility copy() {
public LivingWeaponAbility copy() {
return new LivingWeaponAbility(this);
}
}

View file

@ -0,0 +1,28 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author TheElk801
*/
public final class RebelRedToken extends TokenImpl {
public RebelRedToken() {
super("Rebel Token", "2/2 red Rebel creature token");
this.power = new MageInt(2);
this.toughness = new MageInt(2);
cardType.add(CardType.CREATURE);
color.setRed(true);
subtype.add(SubType.REBEL);
}
public RebelRedToken(final RebelRedToken token) {
super(token);
}
public RebelRedToken copy() {
return new RebelRedToken(this);
}
}

View file

@ -53,6 +53,7 @@ Flying|instance|
Forestcycling|cost|
Forestwalk|new|
Foretell|card, manaString|
For Mirrodin!|new|
Friends forever|instance|
Haste|instance|
Hexproof|instance|