@Override public CantBeCounteredSourceEffect copy() { return new CantBeCounteredSourceEffect(this); }
public CantBeCounteredAbility() { super(Zone.STACK, new CantBeCounteredSourceEffect()); }
public GreatSableStag(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}{G}"); this.subtype.add(SubType.ELK); this.power = new MageInt(3); this.toughness = new MageInt(3); this.addAbility(ProtectionAbility.from(ObjectColor.BLUE, ObjectColor.BLACK)); this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect())); }
public TerraStomper(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}{G}"); this.subtype.add(SubType.BEAST); this.power = new MageInt(8); this.toughness = new MageInt(8); this.addAbility(new SimpleStaticAbility(Zone.ALL, new CantBeCounteredSourceEffect())); this.addAbility(TrampleAbility.getInstance()); }
public RootSliver(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}"); this.subtype.add(SubType.SLIVER); this.power = new MageInt(2); this.toughness = new MageInt(2); // Root Sliver can't be countered. this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect())); // Sliver spells can't be countered. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new RootSliverEffect())); }
public Combust(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}"); // Combust deals 5 damage to target white or blue creature. The damage can't be prevented. this.getSpellAbility().addEffect(new DamageTargetEffect(5, false)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); // Combust can't be countered. Ability ability = new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect()); ability.setRuleAtTheTop(true); this.addAbility(ability); }
public SpellbreakerBehemoth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}{G}{G}"); this.subtype.add(SubType.BEAST); this.power = new MageInt(5); this.toughness = new MageInt(5); this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect())); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeCounteredControlledEffect(filter, Duration.WhileOnBattlefield))); }
public KavuChameleon(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}"); this.subtype.add(SubType.KAVU); this.power = new MageInt(4); this.toughness = new MageInt(4); // Kavu Chameleon can't be countered. this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect())); // {G}: Kavu Chameleon becomes the color of your choice until end of turn. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesColorSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{G}"))); }
public GaeasRevenge(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(8); this.toughness = new MageInt(5); this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect())); this.addAbility(HasteAbility.getInstance()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeTargetedSourceEffect(filter, Duration.WhileOnBattlefield))); }
public ThrunTheLastTroll(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.TROLL); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(4); this.toughness = new MageInt(4); this.addAbility(new SimpleStaticAbility(Zone.ALL, new CantBeCounteredSourceEffect())); this.addAbility(HexproofAbility.getInstance()); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}"))); }
public ExquisiteFirecraft(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}{R}"); // Exquisite Firecraft deals 4 damage to any target. this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addEffect(new DamageTargetEffect(4)); // <i>Spell mastery</i> — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered. ContinuousRuleModifyingEffect cantBeCountered = new CantBeCounteredSourceEffect(); ConditionalContinuousRuleModifyingEffect conditionalCantBeCountered = new ConditionalContinuousRuleModifyingEffect(cantBeCountered, SpellMasteryCondition.instance); conditionalCantBeCountered.setText("<br/>If there are two or more instant and/or sorcery cards in your graveyard, this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK, conditionalCantBeCountered); this.addAbility(ability); }
public TearsOfValakut(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}"); // Tears of Valakut can't be countered. Effect effect = new CantBeCounteredSourceEffect(); effect.setText("this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK, effect); ability.setRuleAtTheTop(true); this.addAbility(ability); // Tears of Valakut deals 5 damage to target creature with flying. this.getSpellAbility().addEffect(new DamageTargetEffect(5)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); }
public RendingVolley(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); // Rending Volley can't be countered. Effect effect = new CantBeCounteredSourceEffect(); effect.setText("this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK,effect); ability.setRuleAtTheTop(true); this.addAbility(ability); // Rending Volley deals 4 damage to target white or blue creature. this.getSpellAbility().addEffect(new DamageTargetEffect(4)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); }
public AbruptDecay(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}{G}"); // Abrupt Decay can't be countered. Effect effect = new CantBeCounteredSourceEffect(); effect.setText("this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK, effect); ability.setRuleAtTheTop(true); this.addAbility(ability); // Destroy target nonland permanent with converted mana cost 3 or less. this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetNonlandPermanent(filter)); }
public VexingBeetle(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}"); this.subtype.add(SubType.INSECT); this.power = new MageInt(3); this.toughness = new MageInt(3); // Vexing Beetle can't be countered. this.addAbility(new SimpleStaticAbility(Zone.STACK, new CantBeCounteredSourceEffect())); // Vexing Beetle gets +3/+3 as long as no opponent controls a creature. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(3, 3, Duration.WhileOnBattlefield), new InvertCondition(new PermanentsOnTheBattlefieldCondition(filter)), "{this} gets +3/+3 as long as no opponent controls a creature") )); }
public SlaughterGames(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}{R}"); // Slaughter Games can't be countered. Effect effect = new CantBeCounteredSourceEffect(); effect.setText("this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK, effect); ability.setRuleAtTheTop(true); this.addAbility(ability); // Name a nonland card. Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles their library. this.getSpellAbility().addEffect(new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.NON_LAND_NAME)); this.getSpellAbility().addEffect(new SlaughterGamesEffect()); this.getSpellAbility().addTarget(new TargetOpponent()); }
public OverwhelmingDenial(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}{U}"); // Overwhelming Denial can't be countered by spell or abilities. Effect effect = new CantBeCounteredSourceEffect(); effect.setText("this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK, effect); ability.setRuleAtTheTop(true); this.addAbility(ability); // Counter target spell. this.getSpellAbility().addTarget(new TargetSpell()); this.getSpellAbility().addEffect(new CounterTargetEffect()); // Has to be placed last here, because added spellAbility objects (e.g. effects) have to be copied from this // Surge {U}{U} (You may cast this spell for its surge cost if you or a teammate has cast another spell this turn) addAbility(new SurgeAbility(this, "{U}{U}")); }
public DragonlordsPrerogative(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{U}{U}"); // As an additional cost to cast Dragonlord's Prerogative, you may reveal a Dragon card from your hand. this.getSpellAbility().addEffect(new InfoEffect("as an additional cost to cast this spell, you may reveal a Dragon card from your hand")); this.getSpellAbility().setCostAdjuster(DragonlordsPrerogativeAdjuster.instance); // If you revealed a Dragon card or controlled a Dragon as you cast Dragonlord's Prerogative, Dragonlord's Prerogative can't be countered. Condition condition = new DragonlordsPrerogativeCondition(); ContinuousRuleModifyingEffect cantBeCountered = new CantBeCounteredSourceEffect(); ConditionalContinuousRuleModifyingEffect conditionalCantBeCountered = new ConditionalContinuousRuleModifyingEffect(cantBeCountered, condition); conditionalCantBeCountered.setText("<br/>If you revealed a Dragon card or controlled a Dragon as you cast {this}, this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK, conditionalCantBeCountered); this.addAbility(ability); // Draw four cards. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(4)); }
public Counterflux(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}{U}{R}"); // Counterflux can't be countered. Effect effect = new CantBeCounteredSourceEffect(); effect.setText("this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK,effect); ability.setRuleAtTheTop(true); this.addAbility(ability); // Counter target spell you don't control. this.getSpellAbility().addTarget(new TargetSpell(filter)); this.getSpellAbility().addEffect(new CounterTargetEffect()); // Overload {1}{U}{U}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") this.addAbility(new OverloadAbility(this, new CounterfluxEffect(), new ManaCostsImpl("{1}{U}{U}{R}"))); }
public UrzasRage(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}"); // Kicker {8}{R} this.addAbility(new KickerAbility("{8}{R}")); // Urza's Rage can't be countered. Effect effect = new CantBeCounteredSourceEffect(); effect.setText("this spell can't be countered"); Ability ability = new SimpleStaticAbility(Zone.STACK, effect); ability.setRuleAtTheTop(true); this.addAbility(ability); // Urza's Rage deals 3 damage to any target. If Urza's Rage was kicked, instead it deals 10 damage to that creature or player and the damage can't be prevented. this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(10, false), new DamageTargetEffect(3), KickedCondition.instance, "{this} deals 3 damage to any target. if this spell was kicked, instead it deals 10 damage to that permanent or player and the damage can't be prevented.")); this.getSpellAbility().addTarget(new TargetAnyTarget()); }