public BondOfAgony(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{B}"); DynamicValue xValue = ManacostVariableValue.instance; // As an additional cost to cast Bond of Agony, pay X life. // magenoxx: here we don't use PayVariableLifeCost as {X} shouldn't actually be announced this.getSpellAbility().addCost(new PayLifeCost(xValue, "X life")); // Each other player loses X life. this.getSpellAbility().addEffect(new LoseLifeOpponentsEffect(xValue)); }
public TormentingVoice(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}"); // As an additional cost to cast Tormenting Voice, discard a card. this.getSpellAbility().addCost(new DiscardTargetCost(new TargetCardInHand())); // Draw two cards. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); }
public SickeningDreams(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}"); // As an additional cost to cast Sickening Dreams, discard X cards. this.getSpellAbility().addCost(new SickeningDreamsAdditionalCost()); // Sickening Dreams deals X damage to each creature and each player. this.getSpellAbility().addEffect(new DamageEverythingEffect(GetXValue.instance, new FilterCreaturePermanent())); }
public AcceptableLosses(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}"); // As an additional cost to cast Acceptable Losses, discard a card at random. this.getSpellAbility().addCost(new DiscardCardCost(true)); // Acceptable Losses deals 5 damage to target creature. this.getSpellAbility().addEffect(new DamageTargetEffect(5)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); }
public CullingTheWeak(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}"); // As an additional cost to cast Culling the Weak, sacrifice a creature. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); // Add {B}{B}{B}{B}. this.getSpellAbility().addEffect(new BasicManaEffect(Mana.BlackMana(4))); }
public SonicSeizure(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); // As an additional cost to cast Sonic Seizure, discard a card at random. this.getSpellAbility().addCost(new DiscardCardCost(true)); // Sonic Seizure deals 3 damage to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addTarget(new TargetAnyTarget()); }
public WasteAway(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{B}"); // As an additional cost to cast Waste Away, discard a card. this.getSpellAbility().addCost(new DiscardCardCost()); // Target creature gets -5/-5 until end of turn. this.getSpellAbility().addEffect(new BoostTargetEffect(-5, -5, Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); }
public KuldothaRebirth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}"); this.getSpellAbility().addEffect(new CreateTokenEffect(new GoblinToken(), 3)); this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); }
public SpontaneousCombustion(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}{R}"); this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); this.getSpellAbility().addEffect(new DamageAllEffect(3, new FilterCreaturePermanent())); }
public Skulltap(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}"); // As an additional cost to cast Skulltap, sacrifice a creature. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, new FilterControlledCreaturePermanent("a creature"), true))); // Draw two cards. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); }
public Raze(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}"); // As an additional cost to cast Raze, sacrifice a land. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, StaticFilters.FILTER_CONTROLLED_LAND_SHORT_TEXT, true))); // Destroy target land. this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetLandPermanent()); }
public TendrilsOfDespair(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}"); // As an additional cost to cast Tendrils of Despair, sacrifice a creature. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); // Target opponent discards two cards. this.getSpellAbility().addTarget(new TargetOpponent()); this.getSpellAbility().addEffect(new DiscardTargetEffect(2)); }
public ViciousBetrayal(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{B}"); // As an additional cost to cast Vicious Betrayal, sacrifice any number of creatures. this.getSpellAbility().addCost(new SacrificeXTargetCost(new FilterControlledCreaturePermanent())); // Target creature gets +2/+2 until end of turn for each creature sacrificed this way. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new BoostTargetEffect(GetXValue.instance, GetXValue.instance, Duration.EndOfTurn)); }
public CorpseLunge(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{B}"); // As an additional cost to cast Corpse Lunge, exile a creature card from your graveyard. this.getSpellAbility().addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD))); // Corpse Lunge deals damage equal to the exiled card's power to target creature. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new CorpseLungeEffect()); }
public AltarOfBone(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{G}{W}"); // As an additional cost to cast Altar of Bone, sacrifice a creature. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); // Search your library for a creature card, reveal that card, and put it into your hand. Then shuffle your library. this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(new FilterCreatureCard()), true)); }
public DevourInFlames(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R}"); // As an additional cost to cast Devour in Flames, return a land you control to its owner's hand. this.getSpellAbility().addCost(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(new FilterControlledLandPermanent("land")))); // Devour in Flames deals 5 damage to target creature or planeswalker. this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); this.getSpellAbility().addEffect(new DamageTargetEffect(5)); }
public FamiliarsRuse(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}{U}"); // As an additional cost to cast Familiar's Ruse, return a creature you control to its owner's hand. this.getSpellAbility().addCost(new ReturnToHandChosenControlledPermanentCost( new TargetControlledCreaturePermanent(1, 1, new FilterControlledCreaturePermanent("creature"), true))); // Counter target spell. this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell()); }
public DisappearingAct(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}{U}"); // As an additional cost to cast Disappearing Act, return a permanent you control to its owner's hand. this.getSpellAbility().addCost(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(new FilterControlledPermanent("a permanent")))); // Counter target spell. getSpellAbility().addEffect(new CounterTargetEffect()); getSpellAbility().addTarget(new TargetSpell()); }
public DeathBomb(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{B}"); // As an additional cost to cast Death Bomb, sacrifice a creature. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1, new FilterControlledCreaturePermanent("a creature"), true))); // Destroy target nonblack creature. It can't be regenerated. Its controller loses 2 life. this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); this.getSpellAbility().addEffect(new LoseLifeTargetControllerEffect(2)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); }
public FleshAllergy(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}{B}"); // As an additional cost to cast Flesh Allergy, sacrifice a creature. // Destroy target creature. Its controller loses life equal to the number of creatures that died this turn. this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new FleshAllergyEffect()); this.getSpellAbility().addWatcher(new FleshAllergyWatcher()); }