forked from External/mage
[MKM] Implement Aurelia's Vindicator
This commit is contained in:
parent
46b5780e91
commit
aa00ce96a8
2 changed files with 86 additions and 0 deletions
85
Mage.Sets/src/mage/cards/a/AureliasVindicator.java
Normal file
85
Mage.Sets/src/mage/cards/a/AureliasVindicator.java
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.dynamicvalue.common.MorphManacostVariableValue;
|
||||
import mage.abilities.effects.common.ExileTargetForSourceEffect;
|
||||
import mage.abilities.effects.common.ReturnFromExileForSourceEffect;
|
||||
import mage.abilities.keyword.DisguiseAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.abilities.keyword.WardAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.target.Target;
|
||||
import mage.target.common.TargetCardInGraveyardBattlefieldOrStack;
|
||||
import mage.target.targetadjustment.TargetAdjuster;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Susucr
|
||||
*/
|
||||
public final class AureliasVindicator extends CardImpl {
|
||||
|
||||
public AureliasVindicator(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
|
||||
this.subtype.add(SubType.ANGEL);
|
||||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(2);
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Lifelink
|
||||
this.addAbility(LifelinkAbility.getInstance());
|
||||
|
||||
// Ward {2}
|
||||
this.addAbility(new WardAbility(new ManaCostsImpl<>("{2}")));
|
||||
|
||||
// Disguise {X}{3}{W}
|
||||
this.addAbility(new DisguiseAbility(this, new ManaCostsImpl<>("{X}{3}{W}")));
|
||||
|
||||
// When Aurelia's Vindicator is turned face up, exile up to X other target creatures from the battlefield and/or creature cards from graveyards.
|
||||
Ability ability = new TurnedFaceUpSourceTriggeredAbility(new ExileTargetForSourceEffect()
|
||||
.setText("exile up to X other target creatures from the battlefield and/or creature cards from graveyards"));
|
||||
ability.setTargetAdjuster(AureliasVindicatorAdjuster.instance);
|
||||
this.addAbility(ability);
|
||||
|
||||
// When Aurelia's Vindicator leaves the battlefield, return the exiled cards to their owners' hands.
|
||||
this.addAbility(new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.HAND)
|
||||
.withText(true, true, false), false));
|
||||
}
|
||||
|
||||
private AureliasVindicator(final AureliasVindicator card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AureliasVindicator copy() {
|
||||
return new AureliasVindicator(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum AureliasVindicatorAdjuster implements TargetAdjuster {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public void adjustTargets(Ability ability, Game game) {
|
||||
ability.getTargets().clear();
|
||||
int xValue = MorphManacostVariableValue.instance.calculate(game, ability, null);
|
||||
Target target = new TargetCardInGraveyardBattlefieldOrStack(
|
||||
0, xValue, StaticFilters.FILTER_CARD_CREATURE, StaticFilters.FILTER_PERMANENT_CREATURES
|
||||
);
|
||||
ability.addTarget(target);
|
||||
}
|
||||
}
|
||||
|
|
@ -38,6 +38,7 @@ public final class MurdersAtKarlovManor extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Assassin's Trophy", 187, Rarity.RARE, mage.cards.a.AssassinsTrophy.class));
|
||||
cards.add(new SetCardInfo("Assemble the Players", 3, Rarity.RARE, mage.cards.a.AssembleThePlayers.class));
|
||||
cards.add(new SetCardInfo("Audience with Trostani", 152, Rarity.RARE, mage.cards.a.AudienceWithTrostani.class));
|
||||
cards.add(new SetCardInfo("Aurelia's Vindicator", 4, Rarity.MYTHIC, mage.cards.a.AureliasVindicator.class));
|
||||
cards.add(new SetCardInfo("Aurelia, the Law Above", 188, Rarity.RARE, mage.cards.a.AureliaTheLawAbove.class));
|
||||
cards.add(new SetCardInfo("Auspicious Arrival", 5, Rarity.COMMON, mage.cards.a.AuspiciousArrival.class));
|
||||
cards.add(new SetCardInfo("Axebane Ferox", 153, Rarity.RARE, mage.cards.a.AxebaneFerox.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue