public SigiledSkink(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); this.subtype.add(SubType.LIZARD); this.power = new MageInt(2); this.toughness = new MageInt(1); // Whenever Sigiled Skink attacks, scry 1. this.addAbility(new AttacksTriggeredAbility(new ScryEffect(1), false)); }
public Preordain(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{U}"); // Scry 2, then draw a card. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) this.getSpellAbility().addEffect( new ScryEffect(2).setText("Scry 2, ") ); this.getSpellAbility().addEffect( new DrawCardSourceControllerEffect(1) .setText("then draw a card. <i>(To scry 2, " + "look at the top two cards of your library, " + "then put any number of them on the " + "bottom of your library and the rest on " + "top in any order.)</i>") ); }
public UndercityScavenger(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); this.subtype.add(SubType.OGRE); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(3); this.toughness = new MageInt(3); // When Undercity Scavenger enters the battlefield, you may sacrifice another creature. If you do, put two +1/+1 counters on Undercity Scavenger, then scry 2. this.addAbility(new EntersBattlefieldTriggeredAbility(new DoIfCostPaid( new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new SacrificeTargetCost(new TargetControlledPermanent(filter)) ).addEffect(new ScryEffect(2).concatBy(", then")))); }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = source.getSourceObject(game); if (controller != null && sourceObject != null) { new ScryEffect(1).apply(game, source); Card card = controller.getLibrary().getFromTop(game); if (card != null) { controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); int unboost = card.getConvertedManaCost() * -1; ContinuousEffect effect = new BoostSourceEffect(unboost, unboost, Duration.EndOfTurn); game.addEffect(effect, source); } return true; } return false; } }
public ScryEffect(int scryNumber) { super(Outcome.Benefit); this.scryNumber = scryNumber; this.setText(); }
public CrystalBall(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(2), new TapSourceCost()); ability.addManaCost(new GenericManaCost(1)); this.addAbility(ability); }
public NewBenalia(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // New Benalia enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When New Benalia enters the battlefield, scry 1. this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); // {tap}: Add {W}. this.addAbility(new WhiteManaAbility()); }
public PathOfAncestry(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // Path of Ancestry enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // T: Add one mana of any color in your commander's color identity. Ability ability = new CommanderColorIdentityManaAbility(); this.addAbility(ability); // When that mana is spent to cast a creature spell that shares a creature type with your commander, scry 1. this.addAbility(new PathOfAncestryTriggeredAbility(new ScryEffect(1))); }
public JacesSanctum(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}"); // Instant and sorcery spells you cast cost {1} less. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1))); // Whenever you cast an instant or sorcery spell, scry 1. this.addAbility(new SpellCastControllerTriggeredAbility(new ScryEffect(1), filter2, false)); }
public SagesRowSavant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}"); this.subtype.add(SubType.VEDALKEN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(2); this.toughness = new MageInt(1); // When Sage's Row Savant enters the battlefield, scry 2. this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(2))); }
public FatedRetribution(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{4}{W}{W}{W}"); // Destroy all creatures and planeswalkers. If it's your turn, scry 2. this.getSpellAbility().addEffect(new DestroyAllEffect(filter, false)); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ScryEffect(2), MyTurnCondition.instance, "If it's your turn, scry 2")); }
public SigiledStarfish(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); this.subtype.add(SubType.STARFISH); this.power = new MageInt(0); this.toughness = new MageInt(3); // {T}: Scry 1. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new TapSourceCost())); }
public HorizonScholar(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U}"); this.subtype.add(SubType.SPHINX); this.power = new MageInt(4); this.toughness = new MageInt(4); // Flying this.addAbility(FlyingAbility.getInstance()); // When Horizon Scholar enters the battlefield, scry 2. this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(2), false)); }
public SenateGriffin(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W/U}{W/U}"); this.subtype.add(SubType.GRIFFIN); this.power = new MageInt(3); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // When Senate Griffin enters the battlefield, scry 1. this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); }
public AuguryOwl(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); this.subtype.add(SubType.BIRD); this.power = new MageInt(1); this.toughness = new MageInt(1); this.addAbility(FlyingAbility.getInstance()); this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(3))); }
public ArtificersAssistant(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}"); this.subtype.add(SubType.BIRD); this.power = new MageInt(1); this.toughness = new MageInt(1); // Flying this.addAbility(FlyingAbility.getInstance()); // Whenever you cast a Historic spell scry 1. this.addAbility(new SpellCastControllerTriggeredAbility(new ScryEffect(1), filter, false)); }
public GeistOfTheArchives(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); this.subtype.add(SubType.SPIRIT); this.power = new MageInt(0); this.toughness = new MageInt(4); // Defender this.addAbility(DefenderAbility.getInstance()); // At the beginning of your upkeep, scry 1. this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ScryEffect(1), TargetController.YOU, false)); }
public ChorusOfTheTides(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}"); this.subtype.add(SubType.SIREN); this.power = new MageInt(3); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // <i>Heroic</i> — Whenever you cast a spell that targets Chorus of the Tides, scry 1. this.addAbility(new HeroicAbility(new ScryEffect(1))); }
public CloudreaderSphinx(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}"); this.subtype.add(SubType.SPHINX); this.power = new MageInt(3); this.toughness = new MageInt(4); // Flying this.addAbility(FlyingAbility.getInstance()); // When Cloudreader Sphinx enters the battlefield, scry 2. this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(2))); }
public WindriderPatrol(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); this.subtype.add(SubType.MERFOLK); this.subtype.add(SubType.WIZARD); this.power = new MageInt(4); this.toughness = new MageInt(3); // Flying this.addAbility(FlyingAbility.getInstance()); // Whenever Windrider Patrol deals combat damage to a player, scry 2. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new ScryEffect(2), false)); }