From 7a71bf70aad2dc2fe15c575ab3d20f6bbc69154e Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sat, 8 Nov 2025 14:47:48 -0500 Subject: [PATCH] [TLA] Implement Agna Qel'a --- Mage.Sets/src/mage/cards/a/AgnaQela.java | 48 +++++++++++++++++++ .../src/mage/sets/AvatarTheLastAirbender.java | 2 + 2 files changed, 50 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/AgnaQela.java diff --git a/Mage.Sets/src/mage/cards/a/AgnaQela.java b/Mage.Sets/src/mage/cards/a/AgnaQela.java new file mode 100644 index 00000000000..2af54ef1ce0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AgnaQela.java @@ -0,0 +1,48 @@ +package mage.cards.a; + +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedUnlessAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.common.YouControlABasicLandCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.abilities.mana.BlueManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class AgnaQela extends CardImpl { + + public AgnaQela(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + // This land enters tapped unless you control a basic land. + this.addAbility(new EntersBattlefieldTappedUnlessAbility(YouControlABasicLandCondition.instance) + .addHint(YouControlABasicLandCondition.getHint())); + + // {T}: Add {U}. + this.addAbility(new BlueManaAbility()); + + // {2}{U}, {T}: Draw a card, then discard a card. + Ability ability = new SimpleActivatedAbility( + new DrawDiscardControllerEffect(1, 1), new ManaCostsImpl<>("{2}{U}") + ); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + private AgnaQela(final AgnaQela card) { + super(card); + } + + @Override + public AgnaQela copy() { + return new AgnaQela(this); + } +} diff --git a/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java b/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java index b3b2ad5c7b7..87bef3718ba 100644 --- a/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java +++ b/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java @@ -35,6 +35,8 @@ public final class AvatarTheLastAirbender extends ExpansionSet { cards.add(new SetCardInfo("Abandon Attachments", 205, Rarity.COMMON, mage.cards.a.AbandonAttachments.class)); cards.add(new SetCardInfo("Abandoned Air Temple", 263, Rarity.RARE, mage.cards.a.AbandonedAirTemple.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Abandoned Air Temple", 386, Rarity.RARE, mage.cards.a.AbandonedAirTemple.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Agna Qel'a", 264, Rarity.RARE, mage.cards.a.AgnaQela.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Agna Qel'a", 387, Rarity.RARE, mage.cards.a.AgnaQela.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Airbender Ascension", 364, Rarity.RARE, mage.cards.a.AirbenderAscension.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Airbender Ascension", 6, Rarity.RARE, mage.cards.a.AirbenderAscension.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Airbender's Reversal", 7, Rarity.UNCOMMON, mage.cards.a.AirbendersReversal.class));