forked from External/mage
[EMN] refactor some TDFCs
This commit is contained in:
parent
668e2bfe22
commit
f024e3b092
9 changed files with 102 additions and 213 deletions
|
|
@ -1,22 +1,20 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.Mana;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.common.delayed.AtTheBeginOfMainPhaseDelayedTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.mana.AddManaToManaPoolSourceControllerEffect;
|
||||
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||
import mage.abilities.effects.mana.AddManaToManaPoolSourceControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class ConduitOfEmrakul extends CardImpl {
|
||||
|
|
@ -32,11 +30,12 @@ public final class ConduitOfEmrakul extends CardImpl {
|
|||
this.nightCard = true;
|
||||
|
||||
// Whenever Conduit of Emrakul attacks, add {C}{C} at the beginning of your next main phase this turn.
|
||||
Effect effect = new CreateDelayedTriggeredAbilityEffect(
|
||||
this.addAbility(new AttacksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfMainPhaseDelayedTriggeredAbility(
|
||||
new AddManaToManaPoolSourceControllerEffect(Mana.GenericMana(2)), false, TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN_THIS_TURN));
|
||||
effect.setText("add {C}{C} at the beginning of your next main phase this turn");
|
||||
this.addAbility(new AttacksTriggeredAbility(effect, false));
|
||||
new AddManaToManaPoolSourceControllerEffect(Mana.GenericMana(2)), false,
|
||||
TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN_THIS_TURN
|
||||
)
|
||||
).setText("add {C}{C} at the beginning of your next main phase this turn"), false));
|
||||
}
|
||||
|
||||
private ConduitOfEmrakul(final ConduitOfEmrakul card) {
|
||||
|
|
|
|||
|
|
@ -1,27 +1,24 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.Mana;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.common.delayed.AtTheBeginOfMainPhaseDelayedTriggeredAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.mana.AddManaToManaPoolSourceControllerEffect;
|
||||
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.effects.mana.AddManaToManaPoolSourceControllerEffect;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class ConduitOfStorms extends CardImpl {
|
||||
|
|
@ -36,11 +33,13 @@ public final class ConduitOfStorms extends CardImpl {
|
|||
this.secondSideCardClazz = mage.cards.c.ConduitOfEmrakul.class;
|
||||
|
||||
// Whenever Conduit of Storms attacks, add {R} at the beginning of your next main phase this turn.
|
||||
Effect effect = new CreateDelayedTriggeredAbilityEffect(
|
||||
this.addAbility(new AttacksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(
|
||||
new AtTheBeginOfMainPhaseDelayedTriggeredAbility(
|
||||
new AddManaToManaPoolSourceControllerEffect(Mana.RedMana(1)), false, TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN_THIS_TURN));
|
||||
effect.setText("add {R} at the beginning of your next main phase this turn");
|
||||
this.addAbility(new AttacksTriggeredAbility(effect, false));
|
||||
new AddManaToManaPoolSourceControllerEffect(Mana.RedMana(1)), false,
|
||||
TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN_THIS_TURN
|
||||
)
|
||||
).setText("add {R} at the beginning of your next main phase this turn"), false));
|
||||
|
||||
// {3}{R}{R}: Transform Conduit of Storms.
|
||||
this.addAbility(new TransformAbility());
|
||||
this.addAbility(new SimpleActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{3}{R}{R}")));
|
||||
|
|
|
|||
|
|
@ -1,42 +1,40 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.Game;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.game.permanent.token.HumanWizardToken;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class DocentOfPerfection extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterSpell = new FilterSpell("an instant or sorcery spell");
|
||||
|
||||
static {
|
||||
filterSpell.add(Predicates.or(
|
||||
CardType.INSTANT.getPredicate(),
|
||||
CardType.SORCERY.getPredicate()));
|
||||
}
|
||||
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(
|
||||
new FilterControlledPermanent(SubType.WIZARD), ComparisonType.MORE_THAN, 2
|
||||
);
|
||||
private static final Hint hint = new ValueHint(
|
||||
"Wizards you control", new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.WIZARD))
|
||||
);
|
||||
|
||||
public DocentOfPerfection(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}");
|
||||
|
|
@ -53,10 +51,15 @@ public final class DocentOfPerfection extends CardImpl {
|
|||
// Whenever you cast an instant or sorcery spell, create a 1/1 blue Human Wizard creature token.
|
||||
// Then if you control three or more Wizards, transform Docent of Perfection.
|
||||
this.addAbility(new TransformAbility());
|
||||
Effect effect = new DocentOfPerfectionEffect();
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new HumanWizardToken()), filterSpell, false);
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(
|
||||
new CreateTokenEffect(new HumanWizardToken()),
|
||||
StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false
|
||||
);
|
||||
ability.addEffect(new ConditionalOneShotEffect(
|
||||
new TransformSourceEffect(), condition,
|
||||
"Then if you control three or more Wizards, transform {this}"
|
||||
));
|
||||
this.addAbility(ability.addHint(hint));
|
||||
}
|
||||
|
||||
private DocentOfPerfection(final DocentOfPerfection card) {
|
||||
|
|
@ -68,38 +71,3 @@ public final class DocentOfPerfection extends CardImpl {
|
|||
return new DocentOfPerfection(this);
|
||||
}
|
||||
}
|
||||
|
||||
class DocentOfPerfectionEffect extends OneShotEffect {
|
||||
|
||||
private static final FilterPermanent filter = new FilterPermanent("Wizards");
|
||||
|
||||
static {
|
||||
filter.add(SubType.WIZARD.getPredicate());
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
}
|
||||
|
||||
public DocentOfPerfectionEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "Then if you control three or more Wizards, transform {this}";
|
||||
}
|
||||
|
||||
private DocentOfPerfectionEffect(final DocentOfPerfectionEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DocentOfPerfectionEffect copy() {
|
||||
return new DocentOfPerfectionEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
if (game.getBattlefield().count(filter, source.getControllerId(), source, game) >= 3) {
|
||||
return new TransformSourceEffect().apply(game, source);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,39 +1,33 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.HumanWizardToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class FinalIteration extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Wizards");
|
||||
private static final FilterSpell filterSpell = new FilterSpell("an instant or sorcery spell");
|
||||
private static final FilterPermanent filter = new FilterPermanent("Wizards");
|
||||
|
||||
static {
|
||||
filter.add(SubType.WIZARD.getPredicate());
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
filterSpell.add(Predicates.or(
|
||||
CardType.INSTANT.getPredicate(),
|
||||
CardType.SORCERY.getPredicate()));
|
||||
}
|
||||
|
||||
public FinalIteration(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
@ -50,14 +44,19 @@ public final class FinalIteration extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Wizards you control get +2/+1 and have flying.
|
||||
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(2, 1, Duration.WhileOnBattlefield, filter, false));
|
||||
Effect effect = new GainAbilityAllEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, filter, false);
|
||||
effect.setText("and have flying");
|
||||
ability.addEffect(effect);
|
||||
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
|
||||
2, 1, Duration.WhileOnBattlefield, filter, false
|
||||
));
|
||||
ability.addEffect(new GainAbilityControlledEffect(
|
||||
FlyingAbility.getInstance(), Duration.WhileOnBattlefield, filter
|
||||
).setText("and have flying"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Whenever you cast an instant or sorcery spell, create a 1/1 blue Human Wizard creature token.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new HumanWizardToken()), filterSpell, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(
|
||||
new CreateTokenEffect(new HumanWizardToken()),
|
||||
StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false
|
||||
));
|
||||
}
|
||||
|
||||
private FinalIteration(final FinalIteration card) {
|
||||
|
|
|
|||
|
|
@ -1,23 +1,19 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.RequirementEffect;
|
||||
import mage.abilities.effects.common.combat.AttacksIfAbleAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class GrislyAnglerfish extends CardImpl {
|
||||
|
|
@ -33,7 +29,9 @@ public final class GrislyAnglerfish extends CardImpl {
|
|||
this.nightCard = true;
|
||||
|
||||
// {6}: Creatures your opponents control attack this turn if able.
|
||||
this.addAbility(new SimpleActivatedAbility(new GrislyAnglerfishMustAttackEffect(), new ManaCostsImpl<>("{6}")));
|
||||
this.addAbility(new SimpleActivatedAbility(new AttacksIfAbleAllEffect(
|
||||
StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES, Duration.EndOfTurn
|
||||
), new ManaCostsImpl<>("{6}")));
|
||||
}
|
||||
|
||||
private GrislyAnglerfish(final GrislyAnglerfish card) {
|
||||
|
|
@ -45,39 +43,3 @@ public final class GrislyAnglerfish extends CardImpl {
|
|||
return new GrislyAnglerfish(this);
|
||||
}
|
||||
}
|
||||
|
||||
class GrislyAnglerfishMustAttackEffect extends RequirementEffect {
|
||||
|
||||
GrislyAnglerfishMustAttackEffect() {
|
||||
super(Duration.EndOfTurn);
|
||||
staticText = "Creatures your opponents control attack this turn if able";
|
||||
}
|
||||
|
||||
private GrislyAnglerfishMustAttackEffect(final GrislyAnglerfishMustAttackEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GrislyAnglerfishMustAttackEffect copy() {
|
||||
return new GrislyAnglerfishMustAttackEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(Permanent permanent, Ability source, Game game) {
|
||||
if (game.getOpponents(source.getControllerId()).contains(permanent.getControllerId())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mustAttack(Game game) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mustBlock(Game game) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
|
||||
package mage.cards.g;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.MillCardsControllerEffect;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.ColorlessPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -26,6 +25,14 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class GrizzledAngler extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCreatureCard();
|
||||
|
||||
static {
|
||||
filter.add(ColorlessPredicate.instance);
|
||||
}
|
||||
|
||||
private static final Condition condition = new CardsInControllerGraveyardCondition(1, filter);
|
||||
|
||||
public GrizzledAngler(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
|
|
@ -36,7 +43,11 @@ public final class GrizzledAngler extends CardImpl {
|
|||
|
||||
// {T}: Put the top two cards of your library into your graveyard. Then if there is a colorless creature card in your graveyard, transform Grizzled Angler.
|
||||
this.addAbility(new TransformAbility());
|
||||
this.addAbility(new SimpleActivatedAbility(new GrizzledAnglerEffect(), new TapSourceCost()));
|
||||
Ability ability = new SimpleActivatedAbility(new MillCardsControllerEffect(2), new TapSourceCost());
|
||||
ability.addEffect(new ConditionalOneShotEffect(
|
||||
new TransformSourceEffect(), condition,
|
||||
"Then if there is a colorless creature card in your graveyard, transform {this}"
|
||||
));
|
||||
}
|
||||
|
||||
private GrizzledAngler(final GrizzledAngler card) {
|
||||
|
|
@ -48,38 +59,3 @@ public final class GrizzledAngler extends CardImpl {
|
|||
return new GrizzledAngler(this);
|
||||
}
|
||||
}
|
||||
|
||||
class GrizzledAnglerEffect extends OneShotEffect {
|
||||
|
||||
private static final FilterCreatureCard filter = new FilterCreatureCard("a colorless creature card in your graveyard");
|
||||
|
||||
static {
|
||||
filter.add(ColorlessPredicate.instance);
|
||||
}
|
||||
|
||||
public GrizzledAnglerEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "Mill two cards. Then if there is a colorless creature card in your graveyard, transform {this}";
|
||||
}
|
||||
|
||||
private GrizzledAnglerEffect(final GrizzledAnglerEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GrizzledAnglerEffect copy() {
|
||||
return new GrizzledAnglerEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (controller != null) {
|
||||
controller.millCards(2, source, game);
|
||||
if (controller.getGraveyard().count(filter, source.getControllerId(), source, game) >= 1) {
|
||||
return new TransformSourceEffect().apply(game, source);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,8 @@ package mage.cards.l;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.condition.Condition;
|
||||
import mage.abilities.condition.common.YouGainedLifeCondition;
|
||||
import mage.abilities.dynamicvalue.common.ControllerGainedLifeCount;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.hint.ConditionHint;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
|
|
@ -26,7 +25,6 @@ import java.util.UUID;
|
|||
public final class LoneRider extends CardImpl {
|
||||
|
||||
private static final Condition condition = new YouGainedLifeCondition(ComparisonType.MORE_THAN, 2);
|
||||
private static final Hint hint = new ConditionHint(condition);
|
||||
|
||||
public LoneRider(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
|
|
@ -47,7 +45,7 @@ public final class LoneRider extends CardImpl {
|
|||
this.addAbility(new TransformAbility());
|
||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||
TargetController.NEXT, new TransformSourceEffect(), false
|
||||
).withInterveningIf(condition).addHint(hint), new PlayerGainedLifeWatcher());
|
||||
).withInterveningIf(condition).addHint(ControllerGainedLifeCount.getHint()), new PlayerGainedLifeWatcher());
|
||||
}
|
||||
|
||||
private LoneRider(final LoneRider card) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.TransformSourceEffect;
|
||||
import mage.abilities.keyword.TransformAbility;
|
||||
|
|
@ -16,9 +12,10 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author fireshoes
|
||||
*/
|
||||
|
|
@ -34,9 +31,7 @@ public final class SmolderingWerewolf extends CardImpl {
|
|||
this.secondSideCardClazz = mage.cards.e.EruptingDreadwolf.class;
|
||||
|
||||
// When Smoldering Werewolf enters the battlefield, it deals 1 damage to each of up to two target creatures.
|
||||
Effect effect = new DamageTargetEffect(1);
|
||||
effect.setText("it deals 1 damage to each of up to two target creatures");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(effect, false);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1, "it"));
|
||||
ability.addTarget(new TargetCreaturePermanent(0, 2));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
package mage.cards.v;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect;
|
||||
|
|
@ -10,23 +9,17 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.common.FilterInstantOrSorceryCard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class VoraciousReader extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Instant and sorcery spells");
|
||||
static {
|
||||
filter.add(Predicates.or(
|
||||
CardType.INSTANT.getPredicate(),
|
||||
CardType.SORCERY.getPredicate()
|
||||
));
|
||||
}
|
||||
private static final FilterCard filter = new FilterInstantOrSorceryCard("Instant and sorcery spells");
|
||||
|
||||
public VoraciousReader(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue