mirror of
https://github.com/correl/mage.git
synced 2025-01-14 03:00:10 +00:00
commit
e2c0b96f4a
143 changed files with 327 additions and 234 deletions
|
@ -64,6 +64,7 @@ public enum MythicspoilerComSource implements CardImageSource {
|
|||
private final Map<String, Set<String>> cardNameAliasesStart;
|
||||
private final Map<String, Map<String, String>> sets;
|
||||
private final Set<String> supportedSets;
|
||||
private final Map<String, Map<String, String>> manualLinks;
|
||||
|
||||
@Override
|
||||
public String getSourceName() {
|
||||
|
@ -277,6 +278,21 @@ public enum MythicspoilerComSource implements CardImageSource {
|
|||
cardNameAliases.put("XLN-infuriatedgladiodon", "ragingswordtooth");
|
||||
cardNameAliases.put("XLN-redoubledvolley", "repeatingbarrage");
|
||||
|
||||
// <card name, card link>
|
||||
manualLinks = new HashMap<>();
|
||||
HashMap<String, String> links = new HashMap<>();
|
||||
links.put("templeofaclazotz", "templeofaclazotz");
|
||||
links.put("conquerorsfoothold", "conquerorsfoothold");
|
||||
links.put("primalwellspring", "primalwellspring");
|
||||
links.put("azcantathesunkenruin", "azcantathesunkenruin");
|
||||
links.put("spiresoforazca", "spiresoforazca");
|
||||
links.put("treasurecove", "treasurecove");
|
||||
links.put("itlimoccradleofthesun", "itlimoccradleofthesun");
|
||||
links.put("lostvale", "lostvale");
|
||||
links.put("adantothefirstfort", "adantothefirstport");
|
||||
links.put("spitfirebastion", "spitfirebastion");
|
||||
manualLinks.put("XLN", links);
|
||||
|
||||
cardNameAliasesStart = new HashMap<>();
|
||||
HashSet<String> names = new HashSet<>();
|
||||
names.add("eldrazidevastator.jpg");
|
||||
|
@ -372,7 +388,12 @@ public enum MythicspoilerComSource implements CardImageSource {
|
|||
pageLinks.put(cardName, baseUrl + cardLink);
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, String> linksToAdd = manualLinks.get(cardSet);
|
||||
if (linksToAdd != null) {
|
||||
for (Map.Entry<String, String> link : linksToAdd.entrySet()) {
|
||||
pageLinks.put(link.getKey(), baseUrl + "cards/" + link.getValue() + ".jpg");
|
||||
}
|
||||
}
|
||||
return pageLinks;
|
||||
}
|
||||
|
||||
|
|
|
@ -85,7 +85,8 @@ public class AdmiralBeckettBrass extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
|
||||
// At the beginning of your end step, gain control of target nonland permanent controlled by a player who was dealt combat damage by three or more Pirates this turn.
|
||||
Ability ability = new BeginningOfEndStepTriggeredAbility(new GainControlTargetEffect(Duration.Custom), TargetController.YOU, false);
|
||||
Ability ability = new BeginningOfEndStepTriggeredAbility(new GainControlTargetEffect(Duration.Custom)
|
||||
.setText("gain control of target nonland permanent controlled by a player who was dealt combat damage by three or more Pirates this turn"), TargetController.YOU, false);
|
||||
ability.addTarget(new TargetNonlandPermanent());
|
||||
originalId = ability.getOriginalId();
|
||||
this.addAbility(ability, new DamagedByPiratesWatcher());
|
||||
|
|
|
@ -51,7 +51,7 @@ public class AdroitHateflayer extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever Adroit Hateflayer attacks, each opponent loses 2 life.
|
||||
this.addAbility(new AttacksTriggeredAbility(new LoseLifeOpponentsEffect(2), false));
|
||||
|
|
|
@ -50,7 +50,7 @@ public class AlleyStrangler extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
}
|
||||
|
||||
public AlleyStrangler(final AlleyStrangler card) {
|
||||
|
|
|
@ -32,13 +32,12 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.constants.*;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -54,14 +53,16 @@ public class AnointedDeacon extends CardImpl {
|
|||
|
||||
public AnointedDeacon(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}");
|
||||
|
||||
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
this.subtype.add(SubType.CLERIC);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// At the beginning of combat on your turn, you may have target Vampire get +2/+0 until end of turn.
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), TargetController.YOU, true, false);
|
||||
Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD,
|
||||
new BoostTargetEffect(2, 0, Duration.EndOfTurn).setText("you may have target Vampire get +2/+0 until end of turn"),
|
||||
TargetController.YOU, true, false);
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ public class AradaraExpress extends CardImpl {
|
|||
this.toughness = new MageInt(6);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
// Crew 4
|
||||
this.addAbility(new CrewAbility(4));
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ public class AshesOfTheAbhorrent extends CardImpl {
|
|||
public AshesOfTheAbhorrent(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}");
|
||||
|
||||
// Players can't cast spells from graveyards or activate abilities from graveyards.
|
||||
// Players can't cast spells from graveyards or activate abilities of cards in graveyards.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AshesOfTheAbhorrentEffect()));
|
||||
|
||||
// Whenever a creature dies, you gain 1 life.
|
||||
|
@ -73,7 +73,7 @@ class AshesOfTheAbhorrentEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
|
||||
public AshesOfTheAbhorrentEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Neutral);
|
||||
staticText = "Players can't cast spells from graveyards or activate abilities from graveyards";
|
||||
staticText = "Players can't cast spells from graveyards or activate abilities of cards in graveyards";
|
||||
}
|
||||
|
||||
public AshesOfTheAbhorrentEffect(final AshesOfTheAbhorrentEffect effect) {
|
||||
|
|
|
@ -63,7 +63,7 @@ public class AtarkaPummeler extends CardImpl {
|
|||
// <i>Formidable</i> - {3}{R}{R}: Creatures you control gain menace until end of turn. Activate this ability only if creature you control have total power 8 or greater. (They can't be blocked except by two or more creatures.)
|
||||
Ability ability = new ActivateIfConditionActivatedAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, filter),
|
||||
new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, filter),
|
||||
new ManaCostsImpl("{3}{R}{R}"),
|
||||
FormidableCondition.instance);
|
||||
ability.setAbilityWord(AbilityWord.FORMIDABLE);
|
||||
|
|
|
@ -62,7 +62,7 @@ public class BelligerentSliver extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Sliver creatures you control have menace. (They can't be blocked except by two or more creatures.)"
|
||||
Effect effect = new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield, filter);
|
||||
Effect effect = new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter);
|
||||
effect.setText("Sliver creatures you control have menace. (They can't be blocked except by two or more creatures.)");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
}
|
||||
|
|
|
@ -36,8 +36,8 @@ import mage.abilities.keyword.VigilanceAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
|
@ -49,7 +49,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
* @author TacomenX
|
||||
*/
|
||||
public class BishopOfRebirth extends CardImpl {
|
||||
|
||||
|
||||
private static final FilterCard filter = new FilterCreatureCard("creature card with converted mana cost 3 or less from your graveyard");
|
||||
|
||||
static {
|
||||
|
@ -59,7 +59,7 @@ public class BishopOfRebirth extends CardImpl {
|
|||
|
||||
public BishopOfRebirth(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}");
|
||||
|
||||
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
this.subtype.add(SubType.CLERIC);
|
||||
this.power = new MageInt(3);
|
||||
|
@ -69,7 +69,8 @@ public class BishopOfRebirth extends CardImpl {
|
|||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Whenever Bishop of Rebirth attacks, you may return target creature card with converted mana cost 3 or less from your graveyard to the battlefield.
|
||||
Ability ability = new AttacksTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), true);
|
||||
Ability ability = new AttacksTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect()
|
||||
.setText("you may return target creature card with converted mana cost 3 or less from your graveyard to the battlefield"), true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -33,15 +33,15 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||
import mage.abilities.effects.common.LoseLifeTargetEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -64,9 +64,9 @@ public class BishopOfTheBloodstained extends CardImpl {
|
|||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Bishop of the Bloodstained enters the battlefield, target player loses 1 life for each vampire you control.
|
||||
// When Bishop of the Bloodstained enters the battlefield, target opponent loses 1 life for each vampire you control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(new PermanentsOnBattlefieldCount(filter)));
|
||||
ability.addTarget(new TargetPlayer());
|
||||
ability.addTarget(new TargetOpponent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,11 +36,11 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.common.LoseLifeTargetEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
||||
|
@ -63,7 +63,7 @@ public class BlightKeeper extends CardImpl {
|
|||
|
||||
// {7}{B}, {T}, Sacrifice Blight Keeper: Target opponent loses 4 life and you gain 4 life.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(4), new ManaCostsImpl("{7}{B}"));
|
||||
ability.addEffect(new GainLifeEffect(4));
|
||||
ability.addEffect(new GainLifeEffect(4).setText("and you gain 4 life"));
|
||||
ability.addTarget(new TargetOpponent());
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
@ -60,7 +60,7 @@ public class BloodChinRager extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever Blood-Chin Rager attacks, Warrior creatures you control gain menace until end of turn. (They can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new AttacksTriggeredAbility(new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, filter), false));
|
||||
this.addAbility(new AttacksTriggeredAbility(new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, filter), false));
|
||||
}
|
||||
|
||||
public BloodChinRager(final BloodChinRager card) {
|
||||
|
|
|
@ -60,7 +60,7 @@ public class BobaFett extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Deathtouch
|
||||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
|
|
|
@ -48,7 +48,7 @@ public class BoggartBrute extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
}
|
||||
|
||||
public BoggartBrute(final BoggartBrute card) {
|
||||
|
|
|
@ -65,7 +65,7 @@ public class BontuTheGlorified extends CardImpl {
|
|||
this.toughness = new MageInt(6);
|
||||
|
||||
//Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
//Indestructible
|
||||
this.addAbility(IndestructibleAbility.getInstance());
|
||||
|
|
|
@ -59,7 +59,7 @@ public class BullRancor extends CardImpl {
|
|||
|
||||
// As long as Bull Rancor is monstrous, creatures you control have menace.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilityControlledEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
new GainAbilityControlledEffect(new MenaceAbility(), Duration.WhileOnBattlefield),
|
||||
MonstrousCondition.instance,
|
||||
"As long as Bull Rancor is monstrous, creatures you control have menace")
|
||||
));
|
||||
|
|
|
@ -66,13 +66,13 @@ public class CaterwaulingBoggart extends CardImpl {
|
|||
|
||||
// Each Goblin you control has menace. (They can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
|
||||
MenaceAbility.getInstance(),
|
||||
new MenaceAbility(),
|
||||
Duration.WhileOnBattlefield, filterGoblin,
|
||||
"Each Goblin you control has menace. (They can't be blocked except by two or more creatures.)")));
|
||||
|
||||
// Each Elemental you control has menace. (They can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
|
||||
MenaceAbility.getInstance(),
|
||||
new MenaceAbility(),
|
||||
Duration.WhileOnBattlefield, filterElemental,
|
||||
"Each Elemental you control has menace. (They can't be blocked except by two or more creatures.)")));
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public class ChitinousCloak extends CardImpl {
|
|||
|
||||
// Equipped creature gets +2/+2 and has menace.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2));
|
||||
Effect effect = new GainAbilityAttachedEffect(MenaceAbility.getInstance(), AttachmentType.EQUIPMENT);
|
||||
Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT);
|
||||
effect.setText("and has menace");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -61,13 +61,13 @@ public class ChitteringHost extends MeldCard {
|
|||
this.addAbility(HasteAbility.getInstance());
|
||||
|
||||
// Menace <i>(This creature can't be blocked except by two or more creatures.
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Chittering Host enters the battlefield, other creatures you control get +1/+0 and gain menace until end of turn.
|
||||
Effect effect = new BoostControlledEffect(1, 0, Duration.EndOfTurn, true);
|
||||
effect.setText("other creatures you control get +1/+0");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(effect, false);
|
||||
effect = new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("other creatures"), true);
|
||||
effect = new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("other creatures"), true);
|
||||
effect.setText("and gain menace until end of turn");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -33,7 +33,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.mana.ColorlessManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -71,7 +71,7 @@ public class ConquerorsFoothold extends CardImpl {
|
|||
|
||||
// {6}, {T}: Return target card from your graveyard to your hand.
|
||||
SimpleActivatedAbility ability3 = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new ReturnToHandTargetEffect(),
|
||||
new ReturnFromGraveyardToHandTargetEffect(),
|
||||
new ManaCostsImpl("{6}"));
|
||||
ability3.addCost(new TapSourceCost());
|
||||
ability3.addTarget(new TargetCardInYourGraveyard());
|
||||
|
|
|
@ -50,7 +50,7 @@ public class CursedMinotaur extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -42,9 +42,9 @@ import mage.target.common.TargetCreatureOrPlayer;
|
|||
public class DarkNourishment extends CardImpl {
|
||||
|
||||
public DarkNourishment(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{9}{7}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{B}");
|
||||
|
||||
// Dark Nourishment deals 3 damage to target creature or player. You gain 3 life.
|
||||
// Dark Nourishment deals 3 damage to target creature or player. You gain 3 life.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(3));
|
||||
|
|
|
@ -63,7 +63,7 @@ public class DarthVader extends CardImpl {
|
|||
this.nightCard = true;
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Lifelink
|
||||
this.addAbility(LifelinkAbility.getInstance());
|
||||
|
|
|
@ -31,7 +31,7 @@ import java.util.UUID;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapTargetCost;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -59,7 +59,7 @@ public class DeathlessAncient extends CardImpl {
|
|||
|
||||
public DeathlessAncient(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
|
||||
|
||||
|
||||
this.subtype.add(SubType.VAMPIRE);
|
||||
this.subtype.add(SubType.KNIGHT);
|
||||
this.power = new MageInt(4);
|
||||
|
@ -69,7 +69,9 @@ public class DeathlessAncient extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Tap three untapped Vampires you control: Return Deathless Ancient from your graveyard to your hand.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnToHandSourceEffect(), new TapTargetCost(new TargetControlledPermanent(3, 3, filter, true))));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD,
|
||||
new ReturnSourceFromGraveyardToHandEffect(),
|
||||
new TapTargetCost(new TargetControlledPermanent(3, 3, filter, true))));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public class Demoralize extends CardImpl {
|
|||
|
||||
|
||||
// All creatures gain menace until end of turn. (They can't be blocked except by two or more creatures.)
|
||||
this.getSpellAbility().addEffect(new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES));
|
||||
this.getSpellAbility().addEffect(new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES));
|
||||
|
||||
// Threshold — If seven or more cards are in your graveyard, creatures can't block this turn.
|
||||
this.getSpellAbility().addEffect(
|
||||
|
|
|
@ -50,7 +50,7 @@ public class DeputizedProtester extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
// Melee
|
||||
this.addAbility(new MeleeAbility());
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ public class DerangedWhelp extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
}
|
||||
|
||||
public DerangedWhelp(final DerangedWhelp card) {
|
||||
|
|
|
@ -64,7 +64,8 @@ public class DireFleetCaptain extends CardImpl {
|
|||
|
||||
// Whenever Dire Fleet Captain attacks, it gets +1/+1 until end of turn for each other attacking Pirate.
|
||||
PermanentsOnBattlefieldCount value = new PermanentsOnBattlefieldCount(filter);
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(value, value, Duration.EndOfTurn, true), false));
|
||||
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(value, value, Duration.EndOfTurn, true)
|
||||
.setText("it gets +1/+1 until end of turn for each other attacking Pirate"), false));
|
||||
}
|
||||
|
||||
public DireFleetCaptain(final DireFleetCaptain card) {
|
||||
|
|
|
@ -52,7 +52,7 @@ public class DireFleetInterloper extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Dire Fleet Interloper enters the battlefield, it explores.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new ExploreSourceEffect()));
|
||||
|
|
|
@ -58,7 +58,7 @@ public class DireFleetRavager extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Deathtouch
|
||||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
|
|
|
@ -58,7 +58,7 @@ public class Dreamstealer extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Dreamstealer deals combat damage to a player, that player discards that many cards.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DreamstealerDiscardEffect(), false, true));
|
||||
|
|
|
@ -63,7 +63,7 @@ public class DrivenDespair extends SplitCard {
|
|||
// Aftermath
|
||||
((CardImpl) (getRightHalfCard())).addAbility(new AftermathAbility().setRuleAtTheTop(true));
|
||||
// Until end of turn, creatures you control gain menace and "Whenever this creature deals combat damage to a player, that player discards a card."
|
||||
getRightHalfCard().getSpellAbility().addEffect(new GainAbilityControlledEffect(MenaceAbility.getInstance(), Duration.EndOfTurn));
|
||||
getRightHalfCard().getSpellAbility().addEffect(new GainAbilityControlledEffect(new MenaceAbility(), Duration.EndOfTurn));
|
||||
ability = new DealsCombatDamageToAPlayerTriggeredAbility(new DiscardTargetEffect(1), false, true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new GainAbilityControlledEffect(ability, Duration.EndOfTurn)
|
||||
.setText("and \"Whenever this creature deals combat damage to a player, that player discards a card.\""));
|
||||
|
|
|
@ -59,7 +59,7 @@ public class EmberhornMinotaur extends CardImpl {
|
|||
Effect effect = new BoostSourceEffect(1, 1, Duration.EndOfTurn);
|
||||
effect.setText("it gets +1/+1");
|
||||
BecomesExertSourceTriggeredAbility ability = new BecomesExertSourceTriggeredAbility(effect);
|
||||
effect = new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.EndOfTurn);
|
||||
effect = new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn);
|
||||
effect.setText("and gains menace until end of turn");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(new ExertAbility(ability));
|
||||
|
|
|
@ -60,7 +60,7 @@ public class EmbraalBruiser extends CardImpl {
|
|||
|
||||
// Embraal Bruiser has menace as long as you control an artifact.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(MenaceAbility.getInstance()),
|
||||
new GainAbilitySourceEffect(new MenaceAbility()),
|
||||
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT),
|
||||
"{this} has menace as long as you control an artifact")));
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ public class FathomFleetCaptain extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever Fathom Fleet Captain attacks, if you control another nontoken Pirate, you may pay {2}. If you do, creature a 2/2 black Pirate creature token with menace.
|
||||
this.addAbility(new ConditionalTriggeredAbility(
|
||||
|
|
|
@ -32,10 +32,10 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
|
@ -66,6 +66,7 @@ public class FathomFleetCutthroat extends CardImpl {
|
|||
// When Fathom Fleet Cutthroat enters the battlefield, destroy target creature an opponent controls that was dealt damage this turn.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public FathomFleetCutthroat(final FathomFleetCutthroat card) {
|
||||
|
|
|
@ -36,9 +36,9 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.mana.ColorlessManaAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SuperType;
|
||||
|
@ -79,6 +79,7 @@ public class FieldOfRuin extends CardImpl {
|
|||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addEffect(new FieldOfRuinEffect());
|
||||
ability.addTarget(new TargetLandPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public FieldOfRuin(final FieldOfRuin card) {
|
||||
|
@ -95,7 +96,7 @@ class FieldOfRuinEffect extends OneShotEffect {
|
|||
|
||||
FieldOfRuinEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Each player searches his or her library for a basic land card, puts it onto the battlefield, then shuffles his or her library.";
|
||||
this.staticText = "Each player searches his or her library for a basic land card, puts it onto the battlefield, then shuffles his or her library";
|
||||
}
|
||||
|
||||
FieldOfRuinEffect(final FieldOfRuinEffect effect) {
|
||||
|
@ -116,13 +117,7 @@ class FieldOfRuinEffect extends OneShotEffect {
|
|||
if (player != null) {
|
||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_BASIC_LAND_CARD);
|
||||
if (player.searchLibrary(target, game)) {
|
||||
for (UUID cardId : target.getTargets()) {
|
||||
Card card = player.getLibrary().getCard(cardId, game);
|
||||
if (card != null) {
|
||||
card.putOntoBattlefield(game, Zone.LIBRARY, source.getSourceId(), player.getId());
|
||||
}
|
||||
|
||||
}
|
||||
player.moveCards(new CardsImpl(target.getTargets()), Zone.BATTLEFIELD, source, game);
|
||||
player.shuffleLibrary(source, game);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ public class FireShrineKeeper extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// {7}{R}, {T}, Sacrifice Fire Shrine Keeper: It deals 3 damage to each of up to two target creatures.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
|
|
|
@ -55,7 +55,7 @@ public class FiremantleMage extends CardImpl {
|
|||
|
||||
// <i>Rally</i> — Whenver Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn.
|
||||
this.addAbility(new AllyEntersBattlefieldTriggeredAbility(
|
||||
new GainAbilityControlledEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, FILTER_PERMANENT_CREATURES), false));
|
||||
new GainAbilityControlledEffect(new MenaceAbility(), Duration.EndOfTurn, FILTER_PERMANENT_CREATURES), false));
|
||||
}
|
||||
|
||||
public FiremantleMage(final FiremantleMage card) {
|
||||
|
|
|
@ -53,7 +53,7 @@ public class FlamebladeAdept extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever you cycle or discard a card, Flameblade Adept gets +1/+0 until end of turn.
|
||||
this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn)));
|
||||
|
|
|
@ -60,7 +60,7 @@ public class GatstafRavagers extends CardImpl {
|
|||
this.nightCard = true;
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
// At the beginning of each upkeep, if a player cast two or more spells last turn, transform Gatstaf Ravagers.
|
||||
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false);
|
||||
this.addAbility(new ConditionalTriggeredAbility(ability, TwoOrMoreSpellsWereCastLastTurnCondition.instance, TransformAbility.TWO_OR_MORE_SPELLS_TRANSFORM_RULE));
|
||||
|
|
|
@ -51,7 +51,7 @@ public class GeyserfieldStalker extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
// <i>Landfall</i> - Whenever a land enters the battlefield under your control, Geyserfield Stalker gets +2/+2 until end of turn.
|
||||
this.addAbility(new LandfallAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn), false));
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ public class GiantSpectacle extends CardImpl {
|
|||
|
||||
// Enchanted creature gets +2/+1 and has menace.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 1));
|
||||
Effect effect = new GainAbilityAttachedEffect(MenaceAbility.getInstance(), AttachmentType.AURA);
|
||||
Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA);
|
||||
effect.setText("and has menace");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -66,7 +66,7 @@ public class GiltLeafWinnower extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Gilt-Leaf Winnower enters the battlefield, you may destroy target non-Elf creature whose power and toughness aren't equal.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), true);
|
||||
|
|
|
@ -60,7 +60,7 @@ public class GlintSleeveSiphoner extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever Glint-Sleeve Siphoner enters the battlefield or attacks, you get {E}.
|
||||
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new GetEnergyCountersControllerEffect(1)));
|
||||
|
|
|
@ -34,11 +34,11 @@ import mage.abilities.costs.common.PayLifeCost;
|
|||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
|
||||
/**
|
||||
|
@ -56,10 +56,10 @@ public class GlorifierOfDusk extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Pay 2 life: Glorifier of Dusk gains flying until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new PayLifeCost(4)));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new PayLifeCost(2)));
|
||||
|
||||
// Pay 2 life: Glorifier of Dusk gains vigilance until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn), new PayLifeCost(4)));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn), new PayLifeCost(2)));
|
||||
}
|
||||
|
||||
public GlorifierOfDusk(final GlorifierOfDusk card) {
|
||||
|
|
|
@ -72,7 +72,7 @@ public class GoblinDarkDwellers extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Goblin Dark-Dwellers enters the battlefield, you may cast target instant or sorcery card with converted mana cost 3 or less
|
||||
// from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead.
|
||||
|
|
|
@ -54,7 +54,7 @@ public class GoblinFreerunner extends CardImpl {
|
|||
addAbility(new SurgeAbility(this, "{1}{R}"));
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
}
|
||||
|
||||
public GoblinFreerunner(final GoblinFreerunner card) {
|
||||
|
|
|
@ -62,7 +62,7 @@ public class GoblinGloryChaser extends CardImpl {
|
|||
|
||||
// As long as Goblin Glory Chaser is renowned, it has menace.
|
||||
Effect effect = new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield),
|
||||
RenownedSourceCondition.instance,
|
||||
"As long as {this} is renowned, it has menace");
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
||||
|
|
|
@ -56,7 +56,7 @@ import mage.filter.predicate.permanent.ControllerPredicate;
|
|||
|
||||
|
||||
// Creatures you control have menace. (They can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield, filter)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter)));
|
||||
}
|
||||
|
||||
public GoblinWarDrums(final GoblinWarDrums card) {
|
||||
|
|
|
@ -56,7 +56,7 @@ public class GorillaWarCry extends CardImpl {
|
|||
this.addAbility(new CastOnlyDuringPhaseStepSourceAbility(TurnPhase.COMBAT, BeforeBlockersAreDeclaredCondition.instance));
|
||||
|
||||
// All creatures gain menace until end of turn. <i>(They can't be blocked except by two or more creatures.)</i>
|
||||
Effect effect = new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent());
|
||||
Effect effect = new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, new FilterCreaturePermanent());
|
||||
effect.setText("All creatures gain menace until end of turn. <i>(They can't be blocked except by two or more creatures.)</i>");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
|
||||
|
|
|
@ -37,8 +37,8 @@ import mage.abilities.keyword.DoubleStrikeAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
|
@ -59,7 +59,7 @@ public class GoringCeratops extends CardImpl {
|
|||
|
||||
// Whenever Goring Ceratops attacks, other creatures you control gain double strike until end of turn.
|
||||
Effect effect = new GainAbilityControlledEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true);
|
||||
effect.setText("other creatures you control gain double strike");
|
||||
effect.setText("other creatures you control gain double strike until end of turn");
|
||||
Ability ability = new AttacksTriggeredAbility(effect, false);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ public class GrafHarvest extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{B}");
|
||||
|
||||
// Zombies you control have menace.
|
||||
Effect effect = new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield, filter);
|
||||
Effect effect = new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter);
|
||||
effect.setText("Zombies you control have menace. <i>(They can't be blocked except by two or more creatures.)</i>");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ public class GraniticTitan extends CardImpl {
|
|||
toughness = new MageInt(4);
|
||||
|
||||
// Menace
|
||||
addAbility(MenaceAbility.getInstance());
|
||||
addAbility(new MenaceAbility());
|
||||
|
||||
// Cycling {2}
|
||||
addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));
|
||||
|
|
|
@ -54,7 +54,7 @@ public class GruulNodorog extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
//{R}: Gruul Nodorog gains menace until end of turn. (It can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{R}")));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn), new ManaCostsImpl("{R}")));
|
||||
}
|
||||
|
||||
public GruulNodorog(final GruulNodorog card) {
|
||||
|
|
|
@ -60,7 +60,7 @@ public class GruulWarChant extends CardImpl {
|
|||
|
||||
|
||||
// Attacking creatures you control get +1/+0 and have menace. (They can't be blocked except by two or more creatures.)
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield, filter));
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter));
|
||||
ability.addEffect(new BoostAllEffect(1,0, Duration.WhileOnBattlefield, filter, false));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ public class HeadstrongBrute extends CardImpl {
|
|||
|
||||
// Headstrong Brute has menace as long as you control another Pirate.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
new ConditionalContinuousEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield),
|
||||
new PermanentsOnTheBattlefieldCondition(filter), "{this} has menace as long as you control another Pirate")));
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ public class HordeOfBoggarts extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
|
||||
|
||||
// Menace (This creature can't be blocked except by two or more creatures.)
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
}
|
||||
|
||||
public HordeOfBoggarts(final HordeOfBoggarts card) {
|
||||
|
|
|
@ -60,7 +60,7 @@ public class HoundOfTheFarbogs extends CardImpl {
|
|||
|
||||
// <i>Delirium</i> — Hound of the Farborgs has menace as long as there are four or more card types among cards in your graveyard.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield), DeliriumCondition.instance, RULE));
|
||||
new ConditionalContinuousEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield), DeliriumCondition.instance, RULE));
|
||||
ability.setAbilityWord(AbilityWord.DELIRIUM);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ public class IkraShidiqiTheUsurper extends CardImpl {
|
|||
this.toughness = new MageInt(7);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever a creature you control deals combat damage to a player, you gain life equal to that creature's toughness.
|
||||
this.addAbility(new IkraShidiqiTheUsurperTriggeredAbility());
|
||||
|
|
|
@ -29,17 +29,16 @@ package mage.cards.i;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.AnotherPredicate;
|
||||
|
@ -72,7 +71,7 @@ public class ImperialAerosaur extends CardImpl {
|
|||
// When Imperial Aerosaur enters the battlefield, another target creature you control gets +1/+1 and gains flying until end of turn.
|
||||
Effect effect = new BoostTargetEffect(1, 1, Duration.EndOfTurn);
|
||||
effect.setText("another target creature you control gets +1/+1");
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(effect);
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(effect);
|
||||
ability.addEffect(effect);
|
||||
effect = new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn);
|
||||
effect.setText("and gains flying until end of turn");
|
||||
|
|
|
@ -63,7 +63,7 @@ public class ImposingVisage extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature has menace. (It can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(MenaceAbility.getInstance(), AttachmentType.AURA)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA)));
|
||||
}
|
||||
|
||||
public ImposingVisage(final ImposingVisage card) {
|
||||
|
|
|
@ -54,7 +54,7 @@ public class InsolentNeonate extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
// Discard a card, Sacrifice Insolent Neonate: Draw a card.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new DiscardCardCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
@ -64,7 +64,7 @@ public class IreShaman extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace (This creature can't be blocked except by two or more creatures.)
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Megamorph {R}
|
||||
this.addAbility(new MorphAbility(this, new ManaCostsImpl("{R}"), true));
|
||||
|
|
|
@ -75,7 +75,7 @@ public class IroasGodOfVictory extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
|
||||
// Creatures you control have menace. (They can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.WhileOnBattlefield, filter)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter)));
|
||||
|
||||
// Prevent all damage that would be dealt to attacking creatures you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PreventAllDamageToAllEffect(Duration.WhileOnBattlefield, filterAttacking)));
|
||||
|
|
|
@ -78,6 +78,7 @@ public class JacesSentinel extends CardImpl {
|
|||
new CantBeBlockedSourceEffect(),
|
||||
new PermanentsOnTheBattlefieldCondition(filter),
|
||||
"and has can't be blocked"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public JacesSentinel(final JacesSentinel card) {
|
||||
|
|
|
@ -71,7 +71,7 @@ public class JangoFett extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Haste
|
||||
this.addAbility(HasteAbility.getInstance());
|
||||
|
|
|
@ -64,7 +64,7 @@ public class KariZevSkyshipRaider extends CardImpl {
|
|||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever Kari Zev, Skyship Raider attacks, create a legendary 2/1 red Monkey creature token named Ragavan that's tapped and attacking. Exile that token at end of combat.
|
||||
this.addAbility(new AttacksTriggeredAbility(new KariZevSkyshipRaiderEffect(), false));
|
||||
|
|
|
@ -53,7 +53,7 @@ public class KederektCreeper extends CardImpl {
|
|||
this.addAbility(DeathtouchAbility.getInstance());
|
||||
|
||||
// Menace (This creature can't be blocked except by two or more creatures.)
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
}
|
||||
|
||||
public KederektCreeper(final KederektCreeper card) {
|
||||
|
|
|
@ -54,7 +54,7 @@ public class KhenraScrapper extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// You may exert Khenra Scrapper as it attacks. When you do, it gets +2/+0 until end of turn.
|
||||
this.addAbility(new ExertAbility(new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn))));
|
||||
|
|
|
@ -67,7 +67,7 @@ public class KheruMindEater extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever Kheru Mind-Eater deals combat damage to a player, that player exiles a card from his or her hand face down.
|
||||
this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new KheruMindEaterExileEffect(), false, true));
|
||||
|
|
|
@ -79,7 +79,7 @@ public class KozilekTheGreatDistortion extends CardImpl {
|
|||
new CardsInHandCondition(ComparisonType.FEWER_THAN, 7),
|
||||
"When you cast {this}, if you have fewer than seven cards in hand, draw cards equal to the difference."));
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Discard a card with converted mana cost X: Counter target spell with converted mana cost X.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new KozilekDiscardCost());
|
||||
|
|
|
@ -63,7 +63,7 @@ public class KozileksShrieker extends CardImpl {
|
|||
Effect effect = new BoostSourceEffect(1, 0, Duration.EndOfTurn);
|
||||
effect.setText("{this} gets +1/+0");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{C}"));
|
||||
effect = new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.EndOfTurn);
|
||||
effect = new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn);
|
||||
effect.setText("and gains menace until end of turn");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -35,10 +35,10 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
|||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.DamagePlayersEffect;
|
||||
import mage.abilities.effects.common.UntapSourceEffect;
|
||||
import mage.constants.SubType;
|
||||
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 mage.filter.FilterSpell;
|
||||
|
@ -50,7 +50,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate;
|
|||
*/
|
||||
public class LightningRigCrew extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell();
|
||||
private static final FilterSpell filter = new FilterSpell("a Pirate spell");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate(SubType.PIRATE));
|
||||
|
|
|
@ -65,7 +65,7 @@ public class LordOfTheAccursed extends CardImpl {
|
|||
|
||||
//{2}{B}, Tap: All Zombies gain menace until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
|
||||
MenaceAbility.getInstance(),
|
||||
new MenaceAbility(),
|
||||
Duration.EndOfTurn,
|
||||
filter, "All Zombies gains menace until end of turn."),
|
||||
new ManaCostsImpl("{1}{B}"));
|
||||
|
|
|
@ -56,7 +56,7 @@ public class LoseCalm extends CardImpl {
|
|||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn, "It gains haste until end of turn"));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
effect = new GainAbilityTargetEffect(MenaceAbility.getInstance(), Duration.EndOfTurn);
|
||||
effect = new GainAbilityTargetEffect(new MenaceAbility(), Duration.EndOfTurn);
|
||||
effect.setText("and menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.) ");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
}
|
||||
|
|
|
@ -32,11 +32,11 @@ import mage.MageInt;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.common.CreatureExploresTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
|
@ -65,6 +65,7 @@ public class LurkingChupacabra extends CardImpl {
|
|||
// Whenever a creature you control explores, target creature an opponent controls gets -2/-2 until end of turn
|
||||
Ability ability = new CreatureExploresTriggeredAbility(new BoostTargetEffect(-2, -2, Duration.EndOfTurn));
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public LurkingChupacabra(final LurkingChupacabra card) {
|
||||
|
|
|
@ -65,7 +65,7 @@ public class MadcapSkills extends CardImpl {
|
|||
|
||||
// Enchanted creature gets +3/+0 and and has menace. (It can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 0)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(MenaceAbility.getInstance(), AttachmentType.AURA)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA)));
|
||||
}
|
||||
|
||||
public MadcapSkills(final MadcapSkills card) {
|
||||
|
|
|
@ -187,7 +187,7 @@ class MajesticMyriarchEffect extends OneShotEffect {
|
|||
|
||||
// Menace
|
||||
if (game.getBattlefield().contains(filterMenace, source.getControllerId(), 1, game)) {
|
||||
game.addEffect(new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.EndOfTurn), source);
|
||||
game.addEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn), source);
|
||||
}
|
||||
|
||||
// Reach
|
||||
|
|
|
@ -29,6 +29,7 @@ package mage.cards.m;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
@ -60,7 +61,7 @@ public class MarchOfTheDrowned extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
|
||||
// &bull; Return two target Pirate cards from your graveyard to your hand.
|
||||
Mode mode = new Mode();
|
||||
mode.getEffects().add(new ReturnToHandTargetEffect());
|
||||
mode.getEffects().add(new ReturnFromGraveyardToHandTargetEffect());
|
||||
mode.getTargets().add(new TargetCardInYourGraveyard(2, filter));
|
||||
this.getSpellAbility().addMode(mode);
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
|
@ -38,9 +39,9 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -52,10 +53,9 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class MarkOfTheVampire extends CardImpl {
|
||||
|
||||
public MarkOfTheVampire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}");
|
||||
this.subtype.add(SubType.AURA);
|
||||
|
||||
|
||||
// Enchant creature
|
||||
TargetPermanent target = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(target);
|
||||
|
@ -63,8 +63,9 @@ public class MarkOfTheVampire extends CardImpl {
|
|||
this.addAbility(new EnchantAbility(target.getTargetName()));
|
||||
|
||||
// Enchanted creature gets +2/+2 and has lifelink.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA)));
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA).setText("and has lifelink"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public MarkOfTheVampire(final MarkOfTheVampire card) {
|
||||
|
|
|
@ -76,7 +76,7 @@ public class MathasFiendSeeker extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// At the beginning of your end step, put a bounty counter on target creature an opponent controls. For as long as that creature has a bounty counter on it, it has "When this creature dies, each opponent draws a card and gains 2 life."
|
||||
Ability ability = new BeginningOfYourEndStepTriggeredAbility(new AddCountersTargetEffect(CounterType.BOUNTY.createInstance()), false);
|
||||
|
|
|
@ -50,7 +50,7 @@ public class MaulfistSquad extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Fabricate 1
|
||||
this.addAbility(new FabricateAbility(1));
|
||||
|
|
|
@ -60,7 +60,7 @@ public class MoonriseIntruder extends CardImpl {
|
|||
this.transformable = true;
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// At the beginning of each upkeep, if a player cast two or more spells last turn, transform Moonrise Intruder.
|
||||
TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new TransformSourceEffect(false), TargetController.ANY, false);
|
||||
|
|
|
@ -64,7 +64,7 @@ public class MorkrutNecropod extends CardImpl {
|
|||
this.toughness = new MageInt(7);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Whenever Morkrut Necropod attacks or blocks, sacrifice another creature or land.
|
||||
this.addAbility(new AttacksOrBlocksTriggeredAbility(new SacrificeControllerEffect(filter, 1, ""), false));
|
||||
|
|
|
@ -64,7 +64,7 @@ public class NoxiousGearhulk extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Noxious Gearhulk enters the battlefield, you may destroy another target creature. If a creature is destroyed this way, you gain life equal to its toughness.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new NoxiousGearhulkEffect());
|
||||
|
|
|
@ -161,7 +161,7 @@ class OdricLunarchMarshalEffect extends OneShotEffect {
|
|||
|
||||
// Menace
|
||||
if (game.getBattlefield().contains(filterMenace, source.getControllerId(), 1, game)) {
|
||||
game.addEffect(new GainAbilityControlledEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, filterCreatures), source);
|
||||
game.addEffect(new GainAbilityControlledEffect(new MenaceAbility(), Duration.EndOfTurn, filterCreatures), source);
|
||||
}
|
||||
|
||||
// Reach
|
||||
|
|
|
@ -28,15 +28,11 @@
|
|||
package mage.cards.o;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -44,7 +40,11 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.AttachmentType;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -65,8 +65,10 @@ public class OneWithTheWind extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+2 and has flying.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA)));
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA)
|
||||
.setText("and has flying"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public OneWithTheWind(final OneWithTheWind card) {
|
||||
|
|
|
@ -70,7 +70,7 @@ public class PlagueBelcher extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Plague Belcher enters the battlefield, put two -1/-1 counters on target creature you control.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(2)));
|
||||
|
|
|
@ -78,7 +78,7 @@ public class PriestOfTheWakeningSun extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// {3}{W}{W}, Sacrifice Priest of the Wakening Sun: Search your library for a Dinosaur card, reveal it, put it into your hand, then shuffle your library.
|
||||
TargetCardInLibrary target = new TargetCardInLibrary(0, 1, filter);
|
||||
TargetCardInLibrary target = new TargetCardInLibrary(filter);
|
||||
Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(target), true, true), new ManaCostsImpl("{3}{W}{W}"));
|
||||
ability2.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(ability2);
|
||||
|
|
|
@ -60,11 +60,11 @@ public class PurphorossEmissary extends CardImpl {
|
|||
this.addAbility(new BestowAbility(this, "{6}{R}"));
|
||||
|
||||
// Menace (This creature can't be blocked except by two or more creatures.)
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Enchanted creature gets +3/+3 and and has menace.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3,3));
|
||||
Effect effect = new GainAbilityAttachedEffect(MenaceAbility.getInstance(), AttachmentType.AURA);
|
||||
Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA);
|
||||
effect.setText("and has menace");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -62,7 +62,7 @@ public class PyreheartWolf extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever Pyreheart Wolf attacks, creatures you control gain menace until end of turn. (They can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new AttacksTriggeredAbility(new GainAbilityAllEffect(MenaceAbility.getInstance(), Duration.EndOfTurn, filter), false));
|
||||
this.addAbility(new AttacksTriggeredAbility(new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, filter), false));
|
||||
|
||||
// Undying (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)
|
||||
this.addAbility(new UndyingAbility());
|
||||
|
|
|
@ -71,7 +71,7 @@ public class RampagingFerocidon extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// Players can't gain life.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new RampagingFerocidonEffect()));
|
||||
|
|
|
@ -63,7 +63,7 @@ public class RelentlessDead extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Menace
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
// When Relentless Dead dies, you may pay {B}. If you do, return it to its owner's hand.
|
||||
this.addAbility(new DiesTriggeredAbility(new DoIfCostPaid(new ReturnToHandSourceEffect(), new ManaCostsImpl("{B}"))));
|
||||
|
|
|
@ -49,7 +49,7 @@ public class RipscalePredator extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// Ripscale Predator can't be blocked except by two or more creatures.
|
||||
this.addAbility(MenaceAbility.getInstance());
|
||||
this.addAbility(new MenaceAbility());
|
||||
}
|
||||
|
||||
public RipscalePredator(final RipscalePredator card) {
|
||||
|
|
|
@ -35,10 +35,10 @@ import mage.abilities.costs.common.SacrificeTargetCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
|
@ -53,7 +53,7 @@ import mage.target.common.TargetControlledPermanent;
|
|||
*/
|
||||
public class RuthlessKnave extends CardImpl {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("three other creatures");
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("three three Treasures");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate(SubType.TREASURE));
|
||||
|
|
|
@ -69,7 +69,9 @@ public class SavageStomp extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}");
|
||||
|
||||
// Savage Stomp costs {2} less to cast if it targets a Dinosaur you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.STACK, new SpellCostReductionSourceEffect(2, SavageStompCondition.instance)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.STACK,
|
||||
new SpellCostReductionSourceEffect(2, SavageStompCondition.instance))
|
||||
.setRuleAtTheTop(true));
|
||||
|
||||
// Put a +1/+1 counter on target creature you control. Then that creature fights target creature you don't control.
|
||||
Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance());
|
||||
|
|
|
@ -60,7 +60,7 @@ public class ScroungedScythe extends CardImpl {
|
|||
|
||||
// As long as equipped creature is a Human, it has menace.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new ConditionalContinuousEffect(new GainAbilityAttachedEffect(MenaceAbility.getInstance(), AttachmentType.EQUIPMENT),
|
||||
new ConditionalContinuousEffect(new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT),
|
||||
new EquippedHasSubtypeCondition(SubType.HUMAN), staticText)));
|
||||
|
||||
// Equip {2}
|
||||
|
|
|
@ -59,7 +59,7 @@ public class SearingSpearAskari extends CardImpl {
|
|||
this.addAbility(new FlankingAbility());
|
||||
|
||||
// {1}{R}: Searing Spear Askari gains menace until end of turn. (It can't be blocked except by two or more creatures.)
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(MenaceAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")));
|
||||
}
|
||||
|
||||
public SearingSpearAskari(final SearingSpearAskari card) {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue