From 44dc4441695b2f92d812f4762839b66b60732880 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Mon, 13 Apr 2020 19:22:19 -0400 Subject: [PATCH] Implemented Kinnan, Bonder Prodigy --- .../src/mage/cards/k/KinnanBonderProdigy.java | 68 +++++++++++++++++++ .../src/mage/sets/IkoriaLairOfBehemoths.java | 1 + 2 files changed, 69 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java diff --git a/Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java b/Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java new file mode 100644 index 00000000000..857260f64d6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/k/KinnanBonderProdigy.java @@ -0,0 +1,68 @@ +package mage.cards.k; + +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.TapForManaAllTriggeredManaAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.abilities.effects.mana.AddManaOfAnyTypeProducedEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.FilterCard; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterCreatureCard; +import mage.filter.common.FilterNonlandPermanent; +import mage.filter.predicate.Predicates; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class KinnanBonderProdigy extends CardImpl { + + private static final FilterPermanent filter = new FilterNonlandPermanent("you tap a nonland permanent"); + private static final FilterCard filter2 = new FilterCreatureCard("non-Human creature card"); + + static { + filter.add(TargetController.YOU.getControllerPredicate()); + filter2.add(Predicates.not(SubType.HUMAN.getPredicate())); + } + + public KinnanBonderProdigy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{U}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.DRUID); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever you tap a nonland permanent for mana, add one mana of any type that permanent produced. + AddManaOfAnyTypeProducedEffect effect = new AddManaOfAnyTypeProducedEffect(); + effect.setText("add one mana of any type that permanent produced"); + this.addAbility(new TapForManaAllTriggeredManaAbility( + effect, filter, SetTargetPointer.PERMANENT + )); + + // {5}{G}{U}: Look at the top five cards of your library. You may put a non-Human creature card from among them onto the battlefield. Put the rest on the bottom of your library in a random order. + this.addAbility(new SimpleActivatedAbility(new LookLibraryAndPickControllerEffect( + StaticValue.get(5), false, StaticValue.get(1), filter2, Zone.LIBRARY, false, + true, false, Zone.BATTLEFIELD, true, false, false + ).setBackInRandomOrder(true).setText("Look at the top five cards of your library. " + + "You may put a non-Human creature card from among them onto the battlefield. " + + "Put the rest on the bottom of your library in a random order." + ), new ManaCostsImpl("{5}{G}{U}"))); + } + + private KinnanBonderProdigy(final KinnanBonderProdigy card) { + super(card); + } + + @Override + public KinnanBonderProdigy copy() { + return new KinnanBonderProdigy(this); + } +} diff --git a/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java b/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java index a221710683b..a17d7880520 100644 --- a/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java +++ b/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java @@ -189,6 +189,7 @@ public final class IkoriaLairOfBehemoths extends ExpansionSet { cards.add(new SetCardInfo("Keruga, the Macrosage", 354, Rarity.RARE, mage.cards.k.KerugaTheMacrosage.class)); cards.add(new SetCardInfo("Ketria Crystal", 236, Rarity.UNCOMMON, mage.cards.k.KetriaCrystal.class)); cards.add(new SetCardInfo("Ketria Triome", 250, Rarity.RARE, mage.cards.k.KetriaTriome.class)); + cards.add(new SetCardInfo("Kinnan, Bonder Prodigy", 192, Rarity.MYTHIC, mage.cards.k.KinnanBonderProdigy.class)); cards.add(new SetCardInfo("Kogla, the Titan Ape", 162, Rarity.RARE, mage.cards.k.KoglaTheTitanApe.class)); cards.add(new SetCardInfo("Labyrinth Raptor", 193, Rarity.RARE, mage.cards.l.LabyrinthRaptor.class)); cards.add(new SetCardInfo("Lava Serpent", 124, Rarity.COMMON, mage.cards.l.LavaSerpent.class));