public AetherFlash(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}{R}"); // Whenever a creature enters the battlefield, Aether Flash deals 2 damage to it. this.addAbility(new EntersBattlefieldAllTriggeredAbility( Zone.BATTLEFIELD, new DamageTargetEffect(2).setText("{this} deals 2 damage to it"), StaticFilters.FILTER_PERMANENT_A_CREATURE, false, SetTargetPointer.PERMANENT, null)); }
@Override public boolean apply(Game game, Ability source) { Permanent permanent = (Permanent) source.getSourceObjectIfItStillExists(game); if (permanent != null) { if (permanent.sacrifice(source.getSourceId(), game)) { Effect effect = new DamageTargetEffect(4).setText("{this} deals 4 damage to it"); effect.setTargetPointer(this.getTargetPointer()); return effect.apply(game, source); } } return false; } }
public Dogpile(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{R}"); // Dogpile deals damage to any target equal to the number of attacking creatures you control. this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)). setText("{this} deals damage to any target equal to the number of attacking creatures you control")); this.getSpellAbility().addTarget(new TargetAnyTarget()); }
public TorrentOfFire(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}"); // Torrent of Fire deals damage equal to the highest converted mana cost among permanents you control to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(new HighestConvertedManaCostValue()) .setText("{this} deals damage to any target equal to the highest converted mana cost among permanents you control.") ); this.getSpellAbility().addTarget(new TargetAnyTarget()); }
public BeaconBolt(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}{R}"); // Beacon Bolt deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard. this.getSpellAbility().addEffect(new DamageTargetEffect( InstantSorceryExileGraveyardCount.instance ).setText("{this} deals damage to target creature equal to " + "the total number of instant and sorcery cards " + "you own in exile and in your graveyard")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Jump-start this.addAbility(new JumpStartAbility(this)); }
public BurningCinderFuryOfCrimsonChaosFire(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}"); // Whenever any player taps a permanent, that player choose one of their opponents. The chosen player gains control of that permanent at the beginning of the next end step. this.addAbility(new BurningCinderFuryOfCrimsonChaosFireAbility()); // At the beginning of each player’s end step, if that player didn’t tap any nonland permanents that turn, Burning Cinder Fury of Crimson Chaos Fire deals 3 damage to that player. this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3).setText("{this} deals 3 damage to that player"), TargetController.ANY, new BurningCinderFuryOfCrimsonChaosFireCondition(), false), new BurningCinderFuryOfCrimsonChaosFireWatcher()); }
public NeedletoothRaptor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.DINOSAUR); this.power = new MageInt(2); this.toughness = new MageInt(2); // <i>Enrage</i> — Whenever Needletooth Raptor is dealt damage, it deals 5 damage to target creature an opponent controls. Ability ability = new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(5).setText("it deals 5 damage to target creature an opponent controls"), false, true); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); }
public FrilledDeathspitter(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add(SubType.DINOSAUR); this.power = new MageInt(3); this.toughness = new MageInt(2); // <i>Enrage</i> — Whenever Frilled Deathspitter is dealt damage, it deals 2 damage to target opponent. Ability ability = new DealtDamageToSourceTriggeredAbility( Zone.BATTLEFIELD, new DamageTargetEffect(2).setText("it deals 2 damage to target opponent or planeswalker"), false, true ); ability.addTarget(new TargetOpponentOrPlaneswalker()); this.addAbility(ability); }
public SunCrownedHunters(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{R}"); this.subtype.add(SubType.DINOSAUR); this.power = new MageInt(5); this.toughness = new MageInt(4); // <i>Enrage</i> — Whenever Sun-Crowned Hunters is dealt damage, it deals 3 damage to target opponent. Ability ability = new DealtDamageToSourceTriggeredAbility( Zone.BATTLEFIELD, new DamageTargetEffect(3).setText("it deals 3 damage to target opponent"), false, true ); ability.addTarget(new TargetOpponentOrPlaneswalker()); this.addAbility(ability); }
public DivineRetribution(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}"); // Divine Retribution deals damage to target attacking creature equal to the number of attacking creatures. this.getSpellAbility().addEffect( new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterAttackingCreature())) .setText("{this} deals damage to target attacking creature equal to the number of attacking creatures.") ); this.getSpellAbility().addTarget(new TargetAttackingCreature()); }
public FirefistAdept(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(3); this.toughness = new MageInt(3); // When Firefist Adept enters the battlefield, it deals X damage to target creature an opponent controls, where X is the number of Wizards you control. Ability ability = new EntersBattlefieldTriggeredAbility( new DamageTargetEffect(new PermanentsOnBattlefieldCount(filterCount)) .setText("it deals X damage to target creature an opponent controls, where X is the number of Wizards you control.") ); ability.addTarget(new TargetOpponentsCreaturePermanent()); this.addAbility(ability); }
public VolleyVeteran(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.GOBLIN); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(4); this.toughness = new MageInt(2); // When Volley Veteran enters the battlefield, it deals damage to target creature an opponent controls equal to the number of Goblins you control. Ability ability = new EntersBattlefieldTriggeredAbility( new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)) .setText("it deals damage to target creature an opponent controls equal to the number of Goblins you control") ); ability.addTarget(new TargetOpponentsCreaturePermanent()); this.addAbility(ability); }
public GoblinBarrage(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}"); // Kicker—Sacrifice an artifact or Goblin. this.addAbility(new KickerAbility(new SacrificeTargetCost(new TargetControlledPermanent(filter)))); // Goblin Barrage deals 4 damage to target creature. If this spell was kicked, it also deals 4 damage to target player or planeswalker. this.getSpellAbility().addEffect(new DamageTargetEffect(4) .setText("{this} deals 4 damage to target creature. If this spell was kicked, " + "it also deals 4 damage to target player or planeswalker") ); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().setTargetAdjuster(GoblinBarrageAdjuster.instance); }
public CutRibbons(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{1}{R}", "{X}{B}{B}", SpellAbilityType.SPLIT_AFTERMATH); // Cut // Cut deals 4 damage to target creature. getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); getLeftHalfCard().getSpellAbility().addEffect(new DamageTargetEffect(4).setText("Cut deals 4 damage to target creature")); // to // Ribbons // Each opponent loses X life. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addEffect(new LoseLifeOpponentsEffect(ManacostVariableValue.instance)); }
public KeeperOfTheFlame(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(1); this.toughness = new MageInt(2); // {R}, {tap}: Choose target opponent who had more life than you did as you activated this ability. Keeper of the Flame deals 2 damage to him or her. Ability ability = new SimpleActivatedAbility( new DamageTargetEffect(2).setText("Choose target opponent who had more life than you did as you activated this ability. {this} deals 2 damage to him or her"), new ManaCostsImpl("{R}")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetPlayer(1, 1, false, filter)); this.addAbility(ability); }
public ChandraGremlinWrangler(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{R}{R}"); this.addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.CHANDRA); this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(3)); // +1: Create a 2/2 red Gremlin creature token. this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new GremlinToken()), 1)); // -2: Chandra, Gremlin Wrangler deals X damage to any target, where X is the number of Gremlins you control. Ability ability = new LoyaltyAbility(new DamageTargetEffect(xValue).setText("{this} deals X damage to any target, where X is the number of Gremlins you control."), -2); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); }
public EternalFlame(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}{R}"); // Eternal Flame deals X damage to target opponent, where X is the number of Mountains you control. It deals half X damage, rounded up, to you.); this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)).setText("{this} deals X damage to target opponent, where X is the number of Mountains you control")); this.getSpellAbility().addEffect(new DamageControllerEffect(new HalfValue(new PermanentsOnBattlefieldCount(filter), true)).setText("It deals half X damage, rounded up, to you")); this.getSpellAbility().addTarget(new TargetOpponentOrPlaneswalker()); }
public WarfireJavelineer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.MINOTAUR); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(2); this.toughness = new MageInt(3); // When Warfire Javelineer enters the battlefield, it deals X damage to target creature an opponent controls, where X is the number of instant and sorcery cards in your graveyard. EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility( new DamageTargetEffect( new CardsInControllerGraveyardCount(new FilterInstantOrSorceryCard())) .setText("it deals X damage to target creature an opponent controls, where X is the number of instant and sorcery cards in your graveyard.")); ability.addTarget(new TargetOpponentsCreaturePermanent()); this.addAbility(ability); }
public FireShrineKeeper(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(1); this.toughness = new MageInt(1); // Menace 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, new DamageTargetEffect(3).setText("It deals 3 damage to each of up to two target creatures"), new ManaCostsImpl<>("{7}{R}")); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); ability.addTarget(new TargetCreaturePermanent(0, 2)); this.addAbility(ability); }
public Banshee(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); this.subtype.add(SubType.SPIRIT); this.power = new MageInt(0); this.toughness = new MageInt(1); // {X}, {T}: Banshee deals half X damage, rounded down, to any target, and half X damage, rounded up, to you. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new HalfValue(ManacostVariableValue.instance, false)).setText("Banshee deals half X damage, rounded down, to any target,"), new ManaCostsImpl("{X}")); ability.addCost(new TapSourceCost()); ability.addEffect(new DamageControllerEffect(new HalfValue(ManacostVariableValue.instance, true)).setText(" and half X damage, rounded up, to you")); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); }