mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +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("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));
|
||||
|
|
|
@ -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
|
||||
public EntersBattlefieldTriggeredAbility copy() {
|
||||
public LivingWeaponAbility copy() {
|
||||
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|
|
||||
Forestwalk|new|
|
||||
Foretell|card, manaString|
|
||||
For Mirrodin!|new|
|
||||
Friends forever|instance|
|
||||
Haste|instance|
|
||||
Hexproof|instance|
|
||||
|
|
Loading…
Reference in a new issue