public HeavenEarth(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{X}{G}", "{X}{R}{R}", SpellAbilityType.SPLIT_AFTERMATH); // Falling // Falling deals X damage to each creature with flying. getLeftHalfCard().getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.instance, filterFlying)); // to // Earth // Earth deals X damage to each creature without flying. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.instance, filterWithouFlying)); }
public RagsRiches(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{B}{B}", "{5}{U}{U}", SpellAbilityType.SPLIT_AFTERMATH); // Rags // All creatures get -2/-2 until end of turn. getLeftHalfCard().getSpellAbility().addEffect(new BoostAllEffect(-2, -2, Duration.EndOfTurn)); // to // Riches // Each opponent chooses a creature he or she controls. You gain control of each of those creatures. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addEffect(new RichesEffect()); }
public ReasonBelieve(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{U}", "{4}{G}", SpellAbilityType.SPLIT_AFTERMATH); // Reason // Scry 3. getLeftHalfCard().getSpellAbility().addEffect(new ScryEffect(3)); // Believe // Aftermath getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); // Look at the top card of your library. You may put it onto the battlefield if it's a creature card. If you don't, put it into your hand. getRightHalfCard().getSpellAbility().addEffect(new BelieveEffect()); }
public DuskDawn(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{W}{W}", "{3}{W}{W}", SpellAbilityType.SPLIT_AFTERMATH); // Dusk // Destroy all creatures with power 3 or greater. Effect destroy = new DestroyAllEffect(filterCreatures3orGreater); destroy.setText("Destroy all creatures with power greater than or equal to 3."); getLeftHalfCard().getSpellAbility().addEffect(destroy); // Dawn // Return all creature cards with power less than or equal to 2 from your graveyard to your hand. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addEffect(new DawnEffect()); }
public SpringMind(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.INSTANT}, "{2}{G}", "{4}{U}{U}", SpellAbilityType.SPLIT_AFTERMATH); // Spring // Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. getLeftHalfCard().getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true)); // Mind // Aftermath // Draw two cards. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); }
public FarmMarket(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{W}", "{2}{U}", SpellAbilityType.SPLIT_AFTERMATH); // Destroy target attacking or blocking creature. getLeftHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect()); getLeftHalfCard().getSpellAbility().addTarget(new TargetAttackingOrBlockingCreature()); // Market {2}{U} // Sorcery // Aftermath getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); // Draw two cards, then discard two cards getRightHalfCard().getSpellAbility().addEffect(new DrawDiscardControllerEffect(2, 2)); }
public MouthFeed(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{G}", "{3}{G}", SpellAbilityType.SPLIT_AFTERMATH); // Mouth // Create a 3/3 green Hippo creature token getLeftHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new HippoToken2())); // to // Feed // Draw a card for each creature you control with power 3 or greater getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); Effect draw = new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filterCreaturesYouControlPower3orGreater)); getRightHalfCard().getSpellAbility().addEffect(draw); }
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 LeaveChance(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{1}{W}", "{3}{R}", SpellAbilityType.SPLIT_AFTERMATH); // Return any number of target permanents you own to your hand. FilterPermanent filter = new FilterPermanent("permanents you own"); filter.add(new OwnerPredicate(TargetController.YOU)); getLeftHalfCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect()); getLeftHalfCard().getSpellAbility().addTarget(new TargetPermanent(0, Integer.MAX_VALUE, filter, false)); // Chance // Sorcery // Aftermath getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); // Discard any number of cards, then draw that many cards. getRightHalfCard().getSpellAbility().addEffect(new ChanceEffect()); }
public ConsignOblivion(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{1}{U}", "{4}{B}", SpellAbilityType.SPLIT_AFTERMATH); // Return target nonland permanent to its owner's hand. getLeftHalfCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect()); getLeftHalfCard().getSpellAbility().addTarget(new TargetNonlandPermanent()); // Oblivion {4}{B} // Sorcery // Aftermath getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); // Target opponent discards two cards. getRightHalfCard().getSpellAbility().addEffect(new DiscardTargetEffect(2)); getRightHalfCard().getSpellAbility().addTarget(new TargetOpponent()); }
public FailureComply(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{1}{U}", "{W}", SpellAbilityType.SPLIT_AFTERMATH); // Failure // Return target spell to it's owner's hand getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell()); getLeftHalfCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect()); // to // Comply // Choose a card name. Until your next turn, your opponents can't cast spells with the chosen name getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); Effect effect = new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.ALL); effect.setText("Choose a card name"); getRightHalfCard().getSpellAbility().addEffect(effect); getRightHalfCard().getSpellAbility().addEffect(new ComplyCantCastEffect()); }
public RefuseCooperate(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.INSTANT}, "{3}{R}", "{2}{U}", SpellAbilityType.SPLIT_AFTERMATH); // Refuse // Refuse deals damage to target spell's controller equal to that spell's converted mana cost. getLeftHalfCard().getSpellAbility().addEffect(new RefuseEffect()); getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell()); // Cooperate // Aftermath getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); // Copy target instant or sorcery spell. You may choose new targets for the copy. getRightHalfCard().getSpellAbility().addEffect(new CopyTargetSpellEffect()); getRightHalfCard().getSpellAbility().addTarget(new TargetSpell(new FilterInstantOrSorcerySpell())); }
public CommitMemory(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{3}{U}", "{4}{U}{U}", SpellAbilityType.SPLIT_AFTERMATH); // Commit // Put target spell or nonland permanent into its owner's library second from the top. getLeftHalfCard().getSpellAbility().addEffect(new CommitEffect()); getLeftHalfCard().getSpellAbility().addTarget(new TargetSpellOrPermanent(1, 1, filter, false)); // Memory // Aftermath // Each player shuffles their hand and graveyard into their library, then draws seven cards. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addEffect(new ShuffleHandGraveyardAllEffect()); Effect effect = new DrawCardAllEffect(7); effect.setText(", then draws seven cards"); getRightHalfCard().getSpellAbility().addEffect(effect); }
public StruggleSurvive(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{R}", "{1}{G}", SpellAbilityType.SPLIT_AFTERMATH); // Struggle // Struggle deals damage to target creature equal to the number of lands you control. Effect effect = new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledLandPermanent("the number of lands you control"))); effect.setText("Struggle deals damage to target creature equal to the number of lands you control"); getLeftHalfCard().getSpellAbility().addEffect(effect); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); // Survive // Aftermath getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); // Each player shuffles his or graveyard into their library. getRightHalfCard().getSpellAbility().addEffect(new SurviveEffect()); }
public OnwardVictory(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{R}", "{2}{W}", SpellAbilityType.SPLIT_AFTERMATH); // Onward // Target creature gets +X/+0 until end of turn where X is its power. getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(TargetPermanentPowerCount.instance, new StaticValue(0), Duration.EndOfTurn, true)); // to // Victory // Target creature gains double strike until end of turn. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); Effect effect = new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn); getRightHalfCard().getSpellAbility().addEffect(effect); getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); }
public InsultInjury(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{2}{R}", "{2}{R}", SpellAbilityType.SPLIT_AFTERMATH); // Insult // Damage can't be prevented this turn. If a source you control would deal damage this turn it deals // double that damage instead. getLeftHalfCard().getSpellAbility().addEffect(new DamageCantBePreventedEffect(Duration.EndOfTurn, "Damage can't be prevented this turn.", true, false)); getLeftHalfCard().getSpellAbility().addEffect(new InsultDoubleDamageEffect()); // to // Injury // Injury deals 2 damage to target creature and 2 damage to target player. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); getRightHalfCard().getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); getRightHalfCard().getSpellAbility().addEffect(new InjuryEffect()); }
public ReduceRubble(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{U}", "{2}{R}", SpellAbilityType.SPLIT_AFTERMATH); // Reduce // Counter target spell unless its controller pays {3}. getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell()); getLeftHalfCard().getSpellAbility().addEffect(new CounterUnlessPaysEffect(new GenericManaCost(3))); // Rubble // Up to three target lands don't untap during their controller's next untap step. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); Effect effect = new DontUntapInControllersNextUntapStepTargetEffect(); effect.setText("Up to three target lands don't untap during their controller's next untap step"); getRightHalfCard().getSpellAbility().addEffect(effect); getRightHalfCard().getSpellAbility().addTarget(new TargetPermanent(0, 3, new FilterLandPermanent(), false)); }
public NeverReturn(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{1}{B}{B}", "{3}{B}", SpellAbilityType.SPLIT_AFTERMATH); // Never // Destroy target creature or planeswalker. getLeftHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect()); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); // Return // Exile target card from a graveyard. Create a 2/2 black Zombie creature token. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addEffect(new ExileTargetEffect()); getRightHalfCard().getSpellAbility().addTarget(new TargetCardInGraveyard()); getRightHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new ZombieToken())); }
public ClaimFame(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.SORCERY}, "{B}", "{1}{R}", SpellAbilityType.SPLIT_AFTERMATH); // Claim // Return target creature card with converted mana cost 2 or less from your graveyard to the battlefield. getLeftHalfCard().getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); getLeftHalfCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard(filter)); // Fame // Aftermath getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); // Target creature gets +2/+0 and gains haste until end of turn. getRightHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 0, Duration.EndOfTurn)); getRightHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn) .setText("and gains haste until end of turn")); getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); }
public StartFinish(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, new CardType[]{CardType.SORCERY}, "{2}{W}", "{2}{B}", SpellAbilityType.SPLIT_AFTERMATH); // Start // Create two 1/1 white Warrior creature tokens with vigilance. Effect effect = new CreateTokenEffect(new WarriorVigilantToken(), 2); effect.setText("Create two 1/1 white Warrior creature tokens with vigilance"); getLeftHalfCard().getSpellAbility().addEffect(effect); // Finish // Aftermath // As an additional cost to cast Finish, sacrifice a creature. Destroy target creature. getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true)); getRightHalfCard().getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent(new FilterCreaturePermanent("creature (to destoy)"))); getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect("Destroy target creature")); }