mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
[ORI] refactor some TDFCs
This commit is contained in:
parent
69b82f4068
commit
d29daa2f85
7 changed files with 72 additions and 104 deletions
|
|
@ -1,13 +1,12 @@
|
||||||
|
|
||||||
package mage.cards.c;
|
package mage.cards.c;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.ObjectColor;
|
import mage.ObjectColor;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.constants.Pronoun;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.SourceDealtDamageCondition;
|
import mage.abilities.condition.common.SourceDealtDamageCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||||
|
|
@ -23,8 +22,9 @@ import mage.filter.predicate.mageobject.ColorPredicate;
|
||||||
import mage.target.common.TargetPlayerOrPlaneswalker;
|
import mage.target.common.TargetPlayerOrPlaneswalker;
|
||||||
import mage.watchers.common.DamageDoneWatcher;
|
import mage.watchers.common.DamageDoneWatcher;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class ChandraFireOfKaladesh extends CardImpl {
|
public final class ChandraFireOfKaladesh extends CardImpl {
|
||||||
|
|
@ -35,6 +35,8 @@ public final class ChandraFireOfKaladesh extends CardImpl {
|
||||||
filter.add(new ColorPredicate(ObjectColor.RED));
|
filter.add(new ColorPredicate(ObjectColor.RED));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final Condition condition = new SourceDealtDamageCondition(3);
|
||||||
|
|
||||||
public ChandraFireOfKaladesh(UUID ownerId, CardSetInfo setInfo) {
|
public ChandraFireOfKaladesh(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{R}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{R}");
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
@ -51,10 +53,11 @@ public final class ChandraFireOfKaladesh extends CardImpl {
|
||||||
// {T}: Chandra, Fire of Kaladesh deals 1 damage to target player. If Chandra has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control.
|
// {T}: Chandra, Fire of Kaladesh deals 1 damage to target player. If Chandra has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control.
|
||||||
this.addAbility(new TransformAbility());
|
this.addAbility(new TransformAbility());
|
||||||
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1), new TapSourceCost());
|
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1), new TapSourceCost());
|
||||||
ability.addEffect(new ConditionalOneShotEffect(new ExileAndReturnSourceEffect(PutCards.BATTLEFIELD_TRANSFORMED,Pronoun.SHE), new SourceDealtDamageCondition(3)));
|
ability.addEffect(new ConditionalOneShotEffect(
|
||||||
|
new ExileAndReturnSourceEffect(PutCards.BATTLEFIELD_TRANSFORMED, Pronoun.SHE), condition
|
||||||
|
));
|
||||||
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
ability.addTarget(new TargetPlayerOrPlaneswalker());
|
||||||
this.addAbility(ability, new DamageDoneWatcher());
|
this.addAbility(ability, new DamageDoneWatcher());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ChandraFireOfKaladesh(final ChandraFireOfKaladesh card) {
|
private ChandraFireOfKaladesh(final ChandraFireOfKaladesh card) {
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,6 @@ public final class ChandraRoaringFlame extends CardImpl {
|
||||||
|
|
||||||
//-7: Chandra, Roaring Flame deals 6 damage to each opponent. Each player dealt damage this way gets an emblem with "At the beginning of your upkeep, this emblem deals 3 damage to you."
|
//-7: Chandra, Roaring Flame deals 6 damage to each opponent. Each player dealt damage this way gets an emblem with "At the beginning of your upkeep, this emblem deals 3 damage to you."
|
||||||
this.addAbility(new LoyaltyAbility(new ChandraRoaringFlameEmblemEffect(), -7));
|
this.addAbility(new LoyaltyAbility(new ChandraRoaringFlameEmblemEffect(), -7));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ChandraRoaringFlame(final ChandraRoaringFlame card) {
|
private ChandraRoaringFlame(final ChandraRoaringFlame card) {
|
||||||
|
|
@ -79,20 +78,19 @@ class ChandraRoaringFlameEmblemEffect extends OneShotEffect {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
if (controller == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
List<Player> opponentsEmblem = new ArrayList<>();
|
List<Player> opponentsEmblem = new ArrayList<>();
|
||||||
for (UUID playerId : game.getOpponents(controller.getId())) {
|
for (UUID playerId : game.getOpponents(controller.getId())) {
|
||||||
Player opponent = game.getPlayer(playerId);
|
Player opponent = game.getPlayer(playerId);
|
||||||
if (opponent != null) {
|
if (opponent != null && opponent.damage(6, source, game) > 0) {
|
||||||
if (opponent.damage(6, source.getSourceId(), source, game) > 0) {
|
|
||||||
opponentsEmblem.add(opponent);
|
opponentsEmblem.add(opponent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
for (Player opponent : opponentsEmblem) {
|
for (Player opponent : opponentsEmblem) {
|
||||||
game.addEmblem(new ChandraRoaringFlameEmblem(), source.getSourceObject(game), opponent.getId());
|
game.addEmblem(new ChandraRoaringFlameEmblem(), source.getSourceObject(game), opponent.getId());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.MageObjectReference;
|
import mage.MageObjectReference;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.LoyaltyAbility;
|
import mage.abilities.LoyaltyAbility;
|
||||||
import mage.abilities.effects.Effect;
|
|
||||||
import mage.abilities.effects.RequirementEffect;
|
import mage.abilities.effects.RequirementEffect;
|
||||||
import mage.abilities.effects.common.PreventAllDamageToSourceEffect;
|
import mage.abilities.effects.common.PreventAllDamageToSourceEffect;
|
||||||
import mage.abilities.effects.common.UntapTargetEffect;
|
import mage.abilities.effects.common.UntapTargetEffect;
|
||||||
|
|
@ -14,12 +12,11 @@ import mage.abilities.keyword.IndestructibleAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.TokenImpl;
|
import mage.game.permanent.token.custom.CreatureToken;
|
||||||
import mage.target.TargetPermanent;
|
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
import mage.target.common.TargetOpponentsCreaturePermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -28,12 +25,6 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class GideonBattleForged extends CardImpl {
|
public final class GideonBattleForged extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(TargetController.OPPONENT.getControllerPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
public GideonBattleForged(UUID ownerId, CardSetInfo setInfo) {
|
public GideonBattleForged(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "");
|
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "");
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
|
|
@ -46,27 +37,26 @@ public final class GideonBattleForged extends CardImpl {
|
||||||
this.setStartingLoyalty(3);
|
this.setStartingLoyalty(3);
|
||||||
|
|
||||||
// +2: Up to one target creature an opponent controls attacks Gideon, Battle-Forged during its controller's next turn if able.
|
// +2: Up to one target creature an opponent controls attacks Gideon, Battle-Forged during its controller's next turn if able.
|
||||||
LoyaltyAbility loyaltyAbility = new LoyaltyAbility(new GideonBattleForgedAttacksIfAbleTargetEffect(Duration.Custom), 2);
|
Ability ability = new LoyaltyAbility(new GideonBattleForgedEffect(), 2);
|
||||||
loyaltyAbility.addTarget(new TargetPermanent(0, 1, filter));
|
ability.addTarget(new TargetOpponentsCreaturePermanent(0, 1));
|
||||||
this.addAbility(loyaltyAbility);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// +1: Until your next turn, target creature gains indestructible. Untap that creature.
|
// +1: Until your next turn, target creature gains indestructible. Untap that creature.
|
||||||
Effect effect = new GainAbilityTargetEffect(IndestructibleAbility.getInstance(), Duration.UntilYourNextTurn);
|
ability = new LoyaltyAbility(new GainAbilityTargetEffect(
|
||||||
effect.setText("Until your next turn, target creature gains indestructible");
|
IndestructibleAbility.getInstance(), Duration.UntilYourNextTurn
|
||||||
loyaltyAbility = new LoyaltyAbility(effect, 1);
|
).setText("Until your next turn, target creature gains indestructible"), 1);
|
||||||
loyaltyAbility.addTarget(new TargetCreaturePermanent());
|
ability.addEffect(new UntapTargetEffect().setText("Untap that creature"));
|
||||||
effect = new UntapTargetEffect();
|
ability.addTarget(new TargetCreaturePermanent());
|
||||||
effect.setText("Untap that creature");
|
this.addAbility(ability);
|
||||||
loyaltyAbility.addEffect(effect);
|
|
||||||
this.addAbility(loyaltyAbility);
|
|
||||||
|
|
||||||
// 0: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
// 0: Until end of turn, Gideon, Battle-Forged becomes a 4/4 Human Soldier creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.
|
||||||
LoyaltyAbility ability3 = new LoyaltyAbility(new BecomesCreatureSourceEffect(new GideonBattleForgedToken(), CardType.PLANESWALKER, Duration.EndOfTurn), 0);
|
ability = new LoyaltyAbility(new BecomesCreatureSourceEffect(new CreatureToken(
|
||||||
effect = new PreventAllDamageToSourceEffect(Duration.EndOfTurn);
|
4, 4, "4/4 Human Soldier creature " +
|
||||||
effect.setText("Prevent all damage that would be dealt to him this turn");
|
"with indestructible", SubType.HUMAN, SubType.SOLDIER
|
||||||
ability3.addEffect(effect);
|
).withAbility(IndestructibleAbility.getInstance()), CardType.PLANESWALKER, Duration.EndOfTurn), 0);
|
||||||
this.addAbility(ability3);
|
ability.addEffect(new PreventAllDamageToSourceEffect(Duration.EndOfTurn)
|
||||||
|
.setText("Prevent all damage that would be dealt to him this turn"));
|
||||||
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
private GideonBattleForged(final GideonBattleForged card) {
|
private GideonBattleForged(final GideonBattleForged card) {
|
||||||
|
|
@ -79,44 +69,23 @@ public final class GideonBattleForged extends CardImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class GideonBattleForgedToken extends TokenImpl {
|
class GideonBattleForgedEffect extends RequirementEffect {
|
||||||
|
|
||||||
public GideonBattleForgedToken() {
|
|
||||||
super("", "4/4 Human Soldier creature with indestructible");
|
|
||||||
cardType.add(CardType.CREATURE);
|
|
||||||
subtype.add(SubType.HUMAN);
|
|
||||||
subtype.add(SubType.SOLDIER);
|
|
||||||
power = new MageInt(4);
|
|
||||||
toughness = new MageInt(4);
|
|
||||||
this.addAbility(IndestructibleAbility.getInstance());
|
|
||||||
}
|
|
||||||
|
|
||||||
private GideonBattleForgedToken(final GideonBattleForgedToken token) {
|
|
||||||
super(token);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GideonBattleForgedToken copy() {
|
|
||||||
return new GideonBattleForgedToken(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class GideonBattleForgedAttacksIfAbleTargetEffect extends RequirementEffect {
|
|
||||||
|
|
||||||
protected MageObjectReference targetPermanentReference;
|
protected MageObjectReference targetPermanentReference;
|
||||||
|
|
||||||
public GideonBattleForgedAttacksIfAbleTargetEffect(Duration duration) {
|
GideonBattleForgedEffect() {
|
||||||
super(duration);
|
super(Duration.Custom);
|
||||||
staticText = "Up to one target creature an opponent controls attacks {this} during its controller's next turn if able";
|
staticText = "up to one target creature an opponent controls attacks {this} during its controller's next turn if able";
|
||||||
}
|
}
|
||||||
|
|
||||||
private GideonBattleForgedAttacksIfAbleTargetEffect(final GideonBattleForgedAttacksIfAbleTargetEffect effect) {
|
private GideonBattleForgedEffect(final GideonBattleForgedEffect effect) {
|
||||||
super(effect);
|
super(effect);
|
||||||
this.targetPermanentReference = effect.targetPermanentReference;
|
this.targetPermanentReference = effect.targetPermanentReference;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GideonBattleForgedAttacksIfAbleTargetEffect copy() {
|
public GideonBattleForgedEffect copy() {
|
||||||
return new GideonBattleForgedAttacksIfAbleTargetEffect(this);
|
return new GideonBattleForgedEffect(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -143,18 +112,17 @@ class GideonBattleForgedAttacksIfAbleTargetEffect extends RequirementEffect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean applies(Permanent permanent, Ability source, Game game) {
|
public boolean applies(Permanent permanent, Ability source, Game game) {
|
||||||
if (permanent.getId().equals(getTargetPointer().getFirst(game, source))) {
|
if (!permanent.getId().equals(getTargetPointer().getFirst(game, source))
|
||||||
if (game.isActivePlayer(permanent.getControllerId())) {
|
|| !game.isActivePlayer(permanent.getControllerId())) {
|
||||||
Permanent planeswalker = game.getPermanent(source.getSourceId());
|
|
||||||
if (planeswalker != null) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
discard();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Permanent planeswalker = source.getSourcePermanentIfItStillExists(game);
|
||||||
|
if (planeswalker == null) {
|
||||||
|
discard();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UUID mustAttackDefender(Ability source, Game game) {
|
public UUID mustAttackDefender(Ability source, Game game) {
|
||||||
|
|
@ -170,5 +138,4 @@ class GideonBattleForgedAttacksIfAbleTargetEffect extends RequirementEffect {
|
||||||
public boolean mustBlock(Game game) {
|
public boolean mustBlock(Game game) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package mage.cards.j;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.LoyaltyAbility;
|
import mage.abilities.LoyaltyAbility;
|
||||||
import mage.abilities.effects.Effect;
|
|
||||||
import mage.abilities.effects.common.GetEmblemEffect;
|
import mage.abilities.effects.common.GetEmblemEffect;
|
||||||
import mage.abilities.effects.common.MayCastTargetCardEffect;
|
import mage.abilities.effects.common.MayCastTargetCardEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
|
|
@ -35,9 +34,9 @@ public final class JaceTelepathUnbound extends CardImpl {
|
||||||
this.setStartingLoyalty(5);
|
this.setStartingLoyalty(5);
|
||||||
|
|
||||||
// +1: Up to one target creature gets -2/-0 until your next turn.
|
// +1: Up to one target creature gets -2/-0 until your next turn.
|
||||||
Effect effect = new BoostTargetEffect(-2, 0, Duration.UntilYourNextTurn);
|
Ability ability = new LoyaltyAbility(new BoostTargetEffect(
|
||||||
effect.setText("Up to one target creature gets -2/-0 until your next turn");
|
-2, 0, Duration.UntilYourNextTurn
|
||||||
Ability ability = new LoyaltyAbility(effect, 1);
|
).setText("Up to one target creature gets -2/-0 until your next turn"), 1);
|
||||||
ability.addTarget(new TargetCreaturePermanent(0, 1));
|
ability.addTarget(new TargetCreaturePermanent(0, 1));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,12 @@
|
||||||
|
|
||||||
package mage.cards.j;
|
package mage.cards.j;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.constants.Pronoun;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||||
import mage.abilities.effects.Effect;
|
|
||||||
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||||
import mage.abilities.effects.common.ExileAndReturnSourceEffect;
|
import mage.abilities.effects.common.ExileAndReturnSourceEffect;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.keyword.TransformAbility;
|
||||||
|
|
@ -17,14 +14,17 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public final class JaceVrynsProdigy extends CardImpl {
|
public final class JaceVrynsProdigy extends CardImpl {
|
||||||
|
|
||||||
|
private static final Condition condition = new CardsInControllerGraveyardCondition(5);
|
||||||
|
|
||||||
public JaceVrynsProdigy(UUID ownerId, CardSetInfo setInfo) {
|
public JaceVrynsProdigy(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}");
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
this.supertype.add(SuperType.LEGENDARY);
|
||||||
this.subtype.add(SubType.HUMAN);
|
this.subtype.add(SubType.HUMAN);
|
||||||
this.subtype.add(SubType.WIZARD);
|
this.subtype.add(SubType.WIZARD);
|
||||||
|
|
@ -35,11 +35,13 @@ public final class JaceVrynsProdigy extends CardImpl {
|
||||||
|
|
||||||
// {T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn's Prodigy, then return him to the battefield transformed under his owner's control.
|
// {T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn's Prodigy, then return him to the battefield transformed under his owner's control.
|
||||||
this.addAbility(new TransformAbility());
|
this.addAbility(new TransformAbility());
|
||||||
Ability ability = new SimpleActivatedAbility(new DrawDiscardControllerEffect(1, 1), new TapSourceCost());
|
Ability ability = new SimpleActivatedAbility(
|
||||||
Effect effect = new ConditionalOneShotEffect(new ExileAndReturnSourceEffect(PutCards.BATTLEFIELD_TRANSFORMED,Pronoun.HE), new CardsInControllerGraveyardCondition(5));
|
new DrawDiscardControllerEffect(1, 1), new TapSourceCost()
|
||||||
ability.addEffect(effect);
|
);
|
||||||
|
ability.addEffect(new ConditionalOneShotEffect(
|
||||||
|
new ExileAndReturnSourceEffect(PutCards.BATTLEFIELD_TRANSFORMED, Pronoun.HE), condition
|
||||||
|
));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private JaceVrynsProdigy(final JaceVrynsProdigy card) {
|
private JaceVrynsProdigy(final JaceVrynsProdigy card) {
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class LilianaDefiantNecromancer extends CardImpl {
|
public final class LilianaDefiantNecromancer extends CardImpl {
|
||||||
|
|
||||||
protected static final FilterCreatureCard filter = new FilterCreatureCard("nonlegendary creature card with mana value X from your graveyard");
|
private static final FilterCreatureCard filter = new FilterCreatureCard("nonlegendary creature card with mana value X from your graveyard");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(Predicates.not(SuperType.LEGENDARY.getPredicate()));
|
filter.add(Predicates.not(SuperType.LEGENDARY.getPredicate()));
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package mage.cards.l;
|
package mage.cards.l;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.constants.Pronoun;
|
|
||||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.effects.common.ExileAndReturnSourceEffect;
|
import mage.abilities.effects.common.ExileAndReturnSourceEffect;
|
||||||
|
|
@ -10,7 +9,8 @@ import mage.abilities.keyword.TransformAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.FilterPermanent;
|
||||||
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
import mage.filter.predicate.permanent.TokenPredicate;
|
import mage.filter.predicate.permanent.TokenPredicate;
|
||||||
import mage.game.permanent.token.ZombieToken;
|
import mage.game.permanent.token.ZombieToken;
|
||||||
|
|
@ -22,10 +22,9 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class LilianaHereticalHealer extends CardImpl {
|
public final class LilianaHereticalHealer extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another nontoken creature you control");
|
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("another nontoken creature you control");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(TargetController.YOU.getControllerPredicate());
|
|
||||||
filter.add(AnotherPredicate.instance);
|
filter.add(AnotherPredicate.instance);
|
||||||
filter.add(TokenPredicate.FALSE);
|
filter.add(TokenPredicate.FALSE);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue