@Override public SurveilEffect copy() { return new SurveilEffect(this); }
public DimirInformant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.ROGUE); this.power = new MageInt(1); this.toughness = new MageInt(4); // When Dimir Informant enters the battlefield, surveil 2. this.addAbility(new EntersBattlefieldTriggeredAbility(new SurveilEffect(2), false)); }
public CitywatchSphinx(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}"); this.subtype.add(SubType.SPHINX); this.power = new MageInt(5); this.toughness = new MageInt(4); // Flying this.addAbility(FlyingAbility.getInstance()); // When Citywatch Sphinx dies, surveil 2. this.addAbility(new DiesTriggeredAbility(new SurveilEffect(2))); }
public WatcherInTheMist(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); this.subtype.add(SubType.SPIRIT); this.power = new MageInt(3); this.toughness = new MageInt(4); // Flying this.addAbility(FlyingAbility.getInstance()); // When Watcher in the Mist enters the battlefield, surveil 2. this.addAbility(new EntersBattlefieldTriggeredAbility( new SurveilEffect(2), false )); }
public NightveilSprite(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.subtype.add(SubType.FAERIE); this.subtype.add(SubType.ROGUE); this.power = new MageInt(1); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // Whenever Nightveil Faerie attacks, surveil 1. this.addAbility(new AttacksTriggeredAbility(new SurveilEffect(1), false)); }
public WhisperAgent(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U/B}{U/B}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.ROGUE); this.power = new MageInt(3); this.toughness = new MageInt(2); // Flash this.addAbility(FlashAbility.getInstance()); // When Whisper Agent enters the battlefield, surveil 1. this.addAbility(new EntersBattlefieldTriggeredAbility(new SurveilEffect(1), false)); }
public BarrierOfBones(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}"); this.subtype.add(SubType.SKELETON); this.subtype.add(SubType.WALL); this.power = new MageInt(0); this.toughness = new MageInt(3); // Defender this.addAbility(DefenderAbility.getInstance()); // When Barrier of Bones enters the battlefield, surveil 1. this.addAbility(new EntersBattlefieldTriggeredAbility( new SurveilEffect(1), false )); }
public MephiticVapors(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}"); // All creatures get -1/-1 until end of turn. this.getSpellAbility().addEffect(new BoostAllEffect(-1, -1, Duration.EndOfTurn)); // Surveil 2. this.getSpellAbility().addEffect(new SurveilEffect(2)); }
public DoomWhisperer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}"); this.subtype.add(SubType.NIGHTMARE); this.subtype.add(SubType.DEMON); this.power = new MageInt(6); this.toughness = new MageInt(6); // Flying this.addAbility(FlyingAbility.getInstance()); // Trample this.addAbility(TrampleAbility.getInstance()); // Pay 2 life: Surveil 2. this.addAbility(new SimpleActivatedAbility( new SurveilEffect(2), new PayLifeCost(2) )); }
public DreamEater(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}"); this.subtype.add(SubType.NIGHTMARE); this.subtype.add(SubType.SPHINX); this.power = new MageInt(4); this.toughness = new MageInt(3); // Flash this.addAbility(FlashAbility.getInstance()); // Flying this.addAbility(FlyingAbility.getInstance()); // When Dream Eater enters the battlefield, surveil 4. When you do, you may return target nonland permanent an opponent controls to its owner's hand. Ability ability = new EntersBattlefieldTriggeredAbility( new SurveilEffect(4) ); ability.addEffect(new DreamEaterCreateReflexiveTriggerEffect()); this.addAbility(ability); }
public ThoughtErasure(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{U}{B}"); // Target opponent reveals their hand. You choose a nonland card from it. That player discards that card. this.getSpellAbility().addEffect(new DiscardCardYouChooseTargetEffect( filter, TargetController.ANY )); this.getSpellAbility().addTarget(new TargetOpponent()); // Surveil 1. this.getSpellAbility().addEffect(new SurveilEffect(1)); }
public UnexplainedDisappearance(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}"); // Return target creature to its owner's hand. this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Surveil 1. this.getSpellAbility().addEffect(new SurveilEffect(1)); }
public DeadlyVisit(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{B}"); // Destroy target creature. this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Surveil 2. this.getSpellAbility().addEffect(new SurveilEffect(2)); }
public DazzlingLights(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{U}"); // Target creature gets -3/-0 until end of turn. this.getSpellAbility().addEffect(new BoostTargetEffect(-3, 0, Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Surveil 2. this.getSpellAbility().addEffect(new SurveilEffect(2)); }
public SinisterSabotage(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}{U}"); // Counter target spell. this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell()); // Surveil 1. this.getSpellAbility().addEffect(new SurveilEffect(1)); }
public LazavTheMultifarious(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{B}"); this.addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.SHAPESHIFTER); this.power = new MageInt(1); this.toughness = new MageInt(3); // When Lazav, the Multifarious enters the battlefield, surveil 1. this.addAbility(new EntersBattlefieldTriggeredAbility( new SurveilEffect(1), false )); // {X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability. Ability ability = new SimpleActivatedAbility( new LazavTheMultifariousEffect(), new ManaCostsImpl("{X}") ); ability.setTargetAdjuster(LazavTheMultifariousAdjuster.instance); this.addAbility(ability); }
public NotionRain(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}{B}"); // Surveil 2, then draw two cards. Rain of Notions deals 2 damage to you. this.getSpellAbility().addEffect( new SurveilEffect(2).setText("Surveil 2") ); this.getSpellAbility().addEffect( new DrawCardSourceControllerEffect(2) .setText(", then draw two cards") ); this.getSpellAbility().addEffect(new DamageControllerEffect(2)); }
public PriceOfFame(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}"); // This spell costs {2} less to cast if it targets a legendary creature. this.addAbility(new SimpleStaticAbility( Zone.STACK, new SpellCostReductionSourceEffect(2, condition) ).setRuleAtTheTop(true)); // Destroy target creature. this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); // Surveil 2. this.getSpellAbility().addEffect(new SurveilEffect(2)); }
public HouseGuildmage(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{B}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(2); this.toughness = new MageInt(2); // {1}{U}, {T}: Target creature doesn't untap during its controller's next untap step. Ability ability = new SimpleActivatedAbility( new DontUntapInControllersNextUntapStepTargetEffect(), new ManaCostsImpl("{1}{U}") ); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); // {2}{B}, {T}: Surveil 2. ability = new SimpleActivatedAbility( new SurveilEffect(2), new ManaCostsImpl("{2}{B}") ); ability.addCost(new TapSourceCost()); this.addAbility(ability); }
public DiscoveryDispersal(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, new CardType[]{CardType.INSTANT}, "{1}{U/B}", "{3}{U}{B}", SpellAbilityType.SPLIT); // Discovery // Surveil 2, then draw a card. this.getLeftHalfCard().getSpellAbility().addEffect( new SurveilEffect(2).setText("Surveil 2,") ); this.getLeftHalfCard().getSpellAbility().addEffect( new DrawCardSourceControllerEffect(1 ).setText("then draw a card. <i>(To surveil 2, " + "look at the top two cards of your library, " + "then put any number of them into your graveyard " + "and the rest on top of your library " + "in any order.)</i>") ); // Dispersal // Each opponent returns a nonland permanent they control with the highest converted mana cost among permanents they control to its owner’s hand, then discards a card. this.getRightHalfCard().getSpellAbility().addEffect(new DispersalEffect()); }