@Override public DealtDamageToCreatureBySourceDies copy() { return new DealtDamageToCreatureBySourceDies(this); }
public KumanosPupils(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(3); this.toughness = new MageInt(3); // If a creature dealt damage by Kumano's Pupils this turn would die, exile it instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DealtDamageToCreatureBySourceDies(this, Duration.WhileOnBattlefield)), new DamagedByWatcher()); }
public Frostwielder(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(1); this.toughness = new MageInt(2); // {T}: Frostwielder deals 1 damage to any target. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost()); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); // If a creature dealt damage by Frostwielder this turn would die, exile it instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DealtDamageToCreatureBySourceDies(this, Duration.WhileOnBattlefield)), new DamagedByWatcher()); }
public KumanoMasterYamabushi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}{R}"); this.addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(4); this.toughness = new MageInt(4); // {{1}{R}: Kumano, Master Yamabushi deals 1 damage to any target. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl("{1}{R}") ); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); // If a creature dealt damage by Kumano this turn would die, exile it instead. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DealtDamageToCreatureBySourceDies(this, Duration.WhileOnBattlefield)), new DamagedByWatcher()); }
public AngerOfTheGods(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}{R}"); // Anger of the Gods deals 3 damage to each creature. this.getSpellAbility().addEffect(new DamageAllEffect(3, new FilterCreaturePermanent())); //If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public YamabushisStorm(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}"); // Yamabushi's Storm deals 1 damage to each creature. this.getSpellAbility().addEffect(new DamageAllEffect(1, new FilterCreaturePermanent())); // If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public AnnihilatingFire(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}{R}"); // Annihilating Fire deals 3 damage to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addTarget(new TargetAnyTarget()); // If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public YamabushisFlame(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}"); // Yamabushi's Flame deals 3 damage to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addTarget(new TargetAnyTarget()); // If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public PillarOfFlame(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}"); // Pillar of Flame deals 2 damage to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(2)); this.getSpellAbility().addTarget(new TargetAnyTarget()); // If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public IncendiaryFlow(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}"); // Incendiary Flow deals 3 damage to any target. If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addTarget(new TargetAnyTarget()); Effect effect = new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn); effect.setText("If a creature dealt damage this way would die this turn, exile it instead"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public Runesword(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}"); // {3}, {T}: Target attacking creature gets +2/+0 until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), new GenericManaCost(3)); // When that creature leaves the battlefield this turn, sacrifice Runesword. ability.addEffect(new RuneswordCreateTriggeredAbilityEffect()); // If the creature deals damage to a creature this turn, the creature dealt damage can't be regenerated this turn. ability.addEffect(new RuneswordCantBeRegeneratedEffect()); // If a creature dealt damage by the targeted creature would die this turn, exile that creature instead. SimpleStaticAbility ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new DealtDamageToCreatureBySourceDies(this, Duration.Custom)); ability2.addWatcher(new DamagedByWatcher()); ability2.setRuleVisible(false); ability.addEffect(new GainAbilityTargetEffect(ability2, Duration.EndOfTurn, null, false).setText( "If a creature dealt damage by the targeted creature would die this turn, exile that creature instead")); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetAttackingCreature()); this.addAbility(ability); }
public TouchOfTheVoid(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}"); // Devoid this.addAbility(new DevoidAbility(this.color)); // Touch of the Void deals 3 damage to any target. If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addTarget(new TargetAnyTarget()); Effect effect = new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn); effect.setText("If a creature dealt damage this way would die this turn, exile it instead"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public RedSunsZenith(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}"); // Red Sun's Zenith deals X damage to any target. // If a creature dealt damage this way would die this turn, exile it instead. // Shuffle Red Sun's Zenith into its owner's library. this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance)); this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); this.getSpellAbility().addEffect(ShuffleSpellEffect.getInstance()); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }
public Demonfire(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}"); // Demonfire deals X damage to any target. this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DamageTargetEffect(ManacostVariableValue.instance), new InvertCondition(HellbentCondition.instance), "{this} deals X damage to any target")); // If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn)); this.getSpellAbility().addWatcher(new DamagedByWatcher()); // Hellbent - If you have no cards in hand, Demonfire can't be countered and the damage can't be prevented. this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DamageTargetEffect(ManacostVariableValue.instance, false), HellbentCondition.instance, "<br/><i>Hellbent</i> — If you have no cards in hand, this spell can't be countered and the damage can't be prevented.")); // can't be countered Effect effect = new CantBeCounteredSourceEffect(); effect.setText(""); this.addAbility(new SimpleStaticAbility(Zone.STACK, new ConditionalContinuousRuleModifyingEffect( (CantBeCounteredSourceEffect) effect, HellbentCondition.instance))); this.getSpellAbility().addTarget(new TargetAnyTarget()); }
public BrutalExpulsion(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{R}"); // Devoid this.addAbility(new DevoidAbility(this.color)); // Choose one or both this.getSpellAbility().getModes().setMinModes(1); this.getSpellAbility().getModes().setMaxModes(2); // - Return target spell or creature to its owner's hand; this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); this.getSpellAbility().addTarget(new TargetSpellOrPermanent(1, 1, filter, false).withChooseHint("return to its owner's hand")); // or Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead. Mode mode = new Mode(); mode.addEffect(new DamageTargetEffect(2)); Effect effect = new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn); effect.setText("If that permanent would be put into a graveyard this turn, exile it instead"); mode.addEffect(effect); mode.addTarget(new TargetCreatureOrPlaneswalker().withChooseHint("deals 2 damage and exile instead")); this.getSpellAbility().addMode(mode); this.getSpellAbility().addWatcher(new DamagedByWatcher(true)); }
public SerpentineSpike(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{R}{R}"); // Devoid this.addAbility(new DevoidAbility(this.color)); // Serpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead. this.getSpellAbility().addEffect(new SerpentineSpikeEffect()); TargetCreaturePermanent target = new TargetCreaturePermanent(new FilterCreaturePermanent("creature (2 damage)")); target.setTargetTag(1); this.getSpellAbility().addTarget(target); FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature (3 damage)"); filter.add(new AnotherTargetPredicate(2)); target = new TargetCreaturePermanent(filter); target.setTargetTag(2); this.getSpellAbility().addTarget(target); filter = new FilterCreaturePermanent("another target creature (4 damage)"); filter.add(new AnotherTargetPredicate(3)); target = new TargetCreaturePermanent(filter); target.setTargetTag(3); this.getSpellAbility().addTarget(target); Effect effect = new DealtDamageToCreatureBySourceDies(this, Duration.EndOfTurn); effect.setText("If a creature dealt damage this way would die this turn, exile it instead"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addWatcher(new DamagedByWatcher()); }