mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
[ONE] Implement Dragonwing Glider
This commit is contained in:
parent
4d53595f07
commit
73037f710e
6 changed files with 119 additions and 1 deletions
57
Mage.Sets/src/mage/cards/d/DragonwingGlider.java
Normal file
57
Mage.Sets/src/mage/cards/d/DragonwingGlider.java
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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("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("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("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("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("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));
|
cards.add(new SetCardInfo("Mountain", 275, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,7 +21,7 @@ public class LivingWeaponAbility extends EntersBattlefieldTriggeredAbility {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EntersBattlefieldTriggeredAbility copy() {
|
public LivingWeaponAbility copy() {
|
||||||
return new LivingWeaponAbility(this);
|
return new LivingWeaponAbility(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -53,6 +53,7 @@ Flying|instance|
|
||||||
Forestcycling|cost|
|
Forestcycling|cost|
|
||||||
Forestwalk|new|
|
Forestwalk|new|
|
||||||
Foretell|card, manaString|
|
Foretell|card, manaString|
|
||||||
|
For Mirrodin!|new|
|
||||||
Friends forever|instance|
|
Friends forever|instance|
|
||||||
Haste|instance|
|
Haste|instance|
|
||||||
Hexproof|instance|
|
Hexproof|instance|
|
||||||
|
|
Loading…
Reference in a new issue