public IdleThoughts(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}"); // {2}: Draw a card if you have no cards in hand. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ConditionalOneShotEffect( new DrawCardSourceControllerEffect(2), new CardsInHandCondition(), "Draw a card if you have no cards in hand"), new ManaCostsImpl("{2}"))); }
public ScrollOfOrigins(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); // {2}, {tap}: Draw a card if you have seven or more cards in hand. Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2), new CardsInHandCondition(ComparisonType.MORE_THAN, 6), "Draw a card if you have seven or more cards in hand."); ability.addCost(new TapSourceCost()); this.addAbility(ability); }
public ImaginaryPet(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); this.subtype.add(SubType.ILLUSION); this.power = new MageInt(4); this.toughness = new MageInt(4); // At the beginning of your upkeep, if you have a card in hand, return Imaginary Pet to its owner's hand. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new ReturnToHandSourceEffect(true), TargetController.YOU, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new CardsInHandCondition(ComparisonType.MORE_THAN, 0), "At the beginning of your upkeep, if you have a card in hand, return {this} to its owner's hand.")); }
public LibraryOfAlexandria(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {tap}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand. this.addAbility(new ConditionalActivatedAbility( Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new TapSourceCost(), new CardsInHandCondition(ComparisonType.EQUAL_TO, 7), "")); }
public BarrenGlory(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{W}{W}"); // At the beginning of your upkeep, if you control no permanents other than Barren Glory and have no cards in hand, you win the game. this.addAbility(new ConditionalInterveningIfTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new WinGameSourceControllerEffect(), TargetController.YOU, false), new CompoundCondition( new CardsInHandCondition(ComparisonType.EQUAL_TO, 0), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.EQUAL_TO, 0) ), "At the beginning of your upkeep, if you control no permanents other than {this} and have no cards in hand, you win the game")); }
public PaupersCage(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); // At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, Paupers' Cage deals 2 damage to him or her. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), TargetController.OPPONENT, false, true); CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.FEWER_THAN, 3); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, condition, "At the beginning of each opponent's upkeep, if that player has two or fewer cards in hand, {this} deals 2 damage to him or her.")); }
public IvoryCraneNetsuke(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); // At the beginning of your upkeep, if you have seven or more cards in hand, you gain 4 life. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new GainLifeEffect(4), TargetController.YOU, false); CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.MORE_THAN, 6); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, condition, "At the beginning of your upkeep, if you have seven or more cards in hand, you gain 4 life.")); }
public HowltoothHollow(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // Hideaway this.addAbility(new HideawayAbility()); // {tap}: Add {B}. this.addAbility(new BlackManaAbility()); // {B}, {tap}: You may play the exiled card without paying its mana cost if each player has no cards in hand. Ability ability = new ActivateIfConditionActivatedAbility( Zone.BATTLEFIELD, new HideawayPlayEffect(), new ManaCostsImpl("{B}"), new CardsInHandCondition(ComparisonType.EQUAL_TO, 0, null, TargetController.ANY)); ability.addCost(new TapSourceCost()); this.addAbility(ability); }
public ScaldingTongs(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // At the beginning of your upkeep, if you have three or fewer cards in hand, Scalding Tongs deals 1 damage to target opponent. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), TargetController.YOU, false); ability.addTarget(new TargetOpponentOrPlaneswalker()); CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.FEWER_THAN, 4); this.addAbility(new ConditionalInterveningIfTriggeredAbility( ability, condition, "At the beginning of your upkeep, if you have three or fewer cards in hand, " + "{this} deals 1 damage to target opponent or planeswalker." )); }
public MagusOfTheLibrary(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}{G}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(1); this.toughness = new MageInt(1); // {tap}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand. this.addAbility(new ConditionalActivatedAbility( Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new TapSourceCost(), new CardsInHandCondition(ComparisonType.EQUAL_TO, 7), "")); }
public Thumbscrews(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // At the beginning of your upkeep, if you have five or more cards in hand, Thumbscrews deals 1 damage to target opponent. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), TargetController.YOU, false); ability.addTarget(new TargetOpponentOrPlaneswalker()); CardsInHandCondition condition = new CardsInHandCondition(ComparisonType.MORE_THAN, 4); this.addAbility(new ConditionalInterveningIfTriggeredAbility( ability, condition, "At the beginning of your upkeep, if you have five or more cards in hand, " + "{this} deals 1 damage to target opponent or planeswalker." )); }
public KiyomaroFirstToStand(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}{W}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.SPIRIT); this.power = new MageInt(0); this.toughness = new MageInt(0); // Kiyomaro, First to Stand's power and toughness are each equal to the number of cards in your hand. DynamicValue xValue= CardsInControllerHandCount.instance; this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(xValue, Duration.EndOfGame))); // As long as you have four or more cards in hand, Kiyomaro has vigilance. Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,3); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield), condition, "As long as you have four or more cards in hand, {this} has vigilance")); this.addAbility(ability); // Whenever Kiyomaro deals damage, if you have seven or more cards in hand, you gain 7 life. this.addAbility(new ConditionalInterveningIfTriggeredAbility( new KiyomaroFirstToStandDealsDamageTriggeredAbility(), new CardsInHandCondition(ComparisonType.MORE_THAN, 6), "Whenever {this} deals damage, if you have seven or more cards in hand, you gain 7 life" )); }
public HazoretTheFervent(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.GOD); this.power = new MageInt(5); this.toughness = new MageInt(4); // Indestructible this.addAbility(IndestructibleAbility.getInstance()); // Haste this.addAbility(HasteAbility.getInstance()); // Hazoret the Fervent can't attack or block unless you have one or fewer cards in hand. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackBlockUnlessConditionSourceEffect(new CardsInHandCondition(ComparisonType.FEWER_THAN, 2)) .setText("{this} can't attack or block unless you have one or fewer cards in hand"))); // {2}{R}, Discard a card: Hazoret deals 2 damage to each opponent. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(2, TargetController.OPPONENT), new ManaCostsImpl("{2}{R}")); ability.addCost(new DiscardCardCost()); this.addAbility(ability); }
public BrinkOfMadness(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}{B}"); // At the beginning of your upkeep, if you have no cards in hand, sacrifice Brink of Madness and target opponent discards their hand. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new SacrificeSourceEffect(), TargetController.YOU, false); ability.addEffect(new BrinkOfMadnessEffect()); ability.addTarget(new TargetOpponent()); CardsInHandCondition contition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, contition, "At the beginning of your upkeep, if you have no cards in hand, sacrifice {this} and target opponent discards their hand.")); }
public AsylumVisitor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add(SubType.VAMPIRE); this.subtype.add(SubType.WIZARD); this.power = new MageInt(3); this.toughness = new MageInt(1); // At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life. Ability ability = new ConditionalInterveningIfTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(1, "you"), TargetController.ANY, false), new CardsInHandCondition(ComparisonType.EQUAL_TO, 0, null, TargetController.ACTIVE), "At the beginning of each player's upkeep, if that player has no cards in hand, you draw a card and you lose 1 life."); Effect effect = new LoseLifeSourceControllerEffect(1); ability.addEffect(effect); this.addAbility(ability); // Madness {1}{B} this.addAbility(new MadnessAbility(this, new ManaCostsImpl("{1}{B}"))); }
public JushiApprentice(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(1); this.toughness = new MageInt(2); this.flipCard = true; this.flipCardName = "Tomoya the Revealer"; // {2}{U}, {tap}: Draw a card. If you have nine or more cards in hand, flip Jushi Apprentice. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}{U}")); ability.addCost(new TapSourceCost()); ability.addEffect(new ConditionalOneShotEffect(new FlipSourceEffect(new TomoyaTheRevealer()), new CardsInHandCondition(ComparisonType.MORE_THAN, 8), "If you have nine or more cards in hand, flip {this}")); this.addAbility(ability); }
public HollowbornBarghest(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}"); this.subtype.add(SubType.DEMON); this.subtype.add(SubType.HOUND); this.power = new MageInt(7); this.toughness = new MageInt(6); // At the beginning of your upkeep, if you have no cards in hand, each opponent loses 2 life. Condition condition = new CardsInHandCondition(ComparisonType.EQUAL_TO, 0); TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new HollowbornBarghestEffect(), TargetController.YOU, false); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, condition, rule)); // At the beginning of each opponent's upkeep, if that player has no cards in hand, he or she loses 2 life. this.addAbility(new HollowbornBarghestTriggeredAbility()); }
public KozilekTheGreatDistortion(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{8}{C}{C}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.ELDRAZI); this.power = new MageInt(12); this.toughness = new MageInt(12); // When you cast Kozilek, the Great Distortion, if you have fewer than seven cards in hand, draw cards equal to the difference. this.addAbility(new ConditionalInterveningIfTriggeredAbility( new CastSourceTriggeredAbility(new KozilekDrawEffect(), false), new CardsInHandCondition(ComparisonType.FEWER_THAN, 7), "When you cast {this}, if you have fewer than seven cards in hand, draw cards equal to the difference.")); // Menace this.addAbility(new MenaceAbility()); // Discard a card with converted mana cost X: Counter target spell with converted mana cost X. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new KozilekDiscardCost()); ability.addTarget(new TargetSpell(new FilterSpell("spell with converted mana cost X"))); this.addAbility(ability); }
public AkkiUnderling(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}"); this.subtype.add(SubType.GOBLIN); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(2); this.toughness = new MageInt(1); // As long as you have seven or more cards in hand, Akki Underling gets +2/+1 and has first strike. Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,6); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(2,1, Duration.WhileOnBattlefield), condition, "As long as you have seven or more cards in hand, {this} gets +2/+1")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield), condition, "and has first strike")); this.addAbility(ability); }
public DeathmaskNezumi(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}"); this.subtype.add(SubType.RAT); this.subtype.add(SubType.SHAMAN); this.power = new MageInt(2); this.toughness = new MageInt(2); // As long as you have seven or more cards in hand, Deathmask Nezumi gets +2/+1 and has fear. Condition condition = new CardsInHandCondition(ComparisonType.MORE_THAN,6); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( new BoostSourceEffect(2,1, Duration.WhileOnBattlefield), condition, "As long as you have seven or more cards in hand, {this} gets +2/+1")); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(FearAbility.getInstance(), Duration.WhileOnBattlefield), condition, "and has fear")); this.addAbility(ability); }