From 29cedc0c0829e29e040d747e73632430797bda5a Mon Sep 17 00:00:00 2001 From: Daniel Bomar Date: Mon, 29 Aug 2022 14:56:15 -0500 Subject: [PATCH] [DMU] Implemented Nael, Avizoa Aeronaut --- .../src/mage/cards/n/NaelAvizoaAeronaut.java | 88 +++++++++++++++++++ Mage.Sets/src/mage/sets/DominariaUnited.java | 1 + 2 files changed, 89 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/n/NaelAvizoaAeronaut.java diff --git a/Mage.Sets/src/mage/cards/n/NaelAvizoaAeronaut.java b/Mage.Sets/src/mage/cards/n/NaelAvizoaAeronaut.java new file mode 100644 index 00000000000..c71a54bda51 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NaelAvizoaAeronaut.java @@ -0,0 +1,88 @@ +package mage.cards.n; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.dynamicvalue.common.DomainValue; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.abilities.effects.common.LookLibraryControllerEffect; +import mage.abilities.hint.common.DomainHint; +import mage.constants.*; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author weirddan455 + */ +public final class NaelAvizoaAeronaut extends CardImpl { + + public NaelAvizoaAeronaut(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{U}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.ELF); + this.subtype.add(SubType.SCOUT); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Domain -- Whenever Nael, Avizoa Aeronaut deals combat damage to a player, look at the top X cards of your library, where X is the number of basic land types among lands you control. + // Put up to one of them on top of your library and the rest on the bottom in a random order. Then if there are five basic land types among lands you control, draw a card. + Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility( + new LookLibraryAndPickControllerEffect( + DomainValue.REGULAR, 1, + LookLibraryControllerEffect.PutCards.TOP_ANY, LookLibraryControllerEffect.PutCards.BOTTOM_RANDOM, + true + ), + false + ); + ability.addEffect(new NaelAvizoaAeronautEffect()); + ability.setAbilityWord(AbilityWord.DOMAIN); + ability.addHint(DomainHint.instance); + this.addAbility(ability); + } + + private NaelAvizoaAeronaut(final NaelAvizoaAeronaut card) { + super(card); + } + + @Override + public NaelAvizoaAeronaut copy() { + return new NaelAvizoaAeronaut(this); + } +} + +class NaelAvizoaAeronautEffect extends OneShotEffect { + + public NaelAvizoaAeronautEffect() { + super(Outcome.DrawCard); + this.staticText = "Then if there are five basic land types among lands you control, draw a card."; + } + + private NaelAvizoaAeronautEffect(final NaelAvizoaAeronautEffect effect) { + super(effect); + } + + @Override + public NaelAvizoaAeronautEffect copy() { + return new NaelAvizoaAeronautEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null && DomainValue.REGULAR.calculate(game, source, this) >= 5) { + controller.drawCards(1, source, game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/DominariaUnited.java b/Mage.Sets/src/mage/sets/DominariaUnited.java index 9138544588e..0f03f862374 100644 --- a/Mage.Sets/src/mage/sets/DominariaUnited.java +++ b/Mage.Sets/src/mage/sets/DominariaUnited.java @@ -149,6 +149,7 @@ public final class DominariaUnited extends ExpansionSet { cards.add(new SetCardInfo("Monstrous War-Leech", 98, Rarity.UNCOMMON, mage.cards.m.MonstrousWarLeech.class)); cards.add(new SetCardInfo("Mossbeard Ancient", 173, Rarity.UNCOMMON, mage.cards.m.MossbeardAncient.class)); cards.add(new SetCardInfo("Mountain", 271, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Nael, Avizoa Aeronaut", 207, Rarity.UNCOMMON, mage.cards.n.NaelAvizoaAeronaut.class)); cards.add(new SetCardInfo("Negate", 58, Rarity.COMMON, mage.cards.n.Negate.class)); cards.add(new SetCardInfo("Nishoba Brawler", 174, Rarity.UNCOMMON, mage.cards.n.NishobaBrawler.class)); cards.add(new SetCardInfo("Phoenix Chick", 140, Rarity.UNCOMMON, mage.cards.p.PhoenixChick.class));