From 74f7a4fcbe423a0e4dddff7bfb63496c99302cf0 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 12 Nov 2025 10:37:58 -0500 Subject: [PATCH] [TLA] Implement Waterbender Ascension --- .../mage/cards/w/WaterbenderAscension.java | 58 +++++++++++++++++++ .../src/mage/sets/AvatarTheLastAirbender.java | 2 + 2 files changed, 60 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/w/WaterbenderAscension.java diff --git a/Mage.Sets/src/mage/cards/w/WaterbenderAscension.java b/Mage.Sets/src/mage/cards/w/WaterbenderAscension.java new file mode 100644 index 00000000000..1530dd67eb2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WaterbenderAscension.java @@ -0,0 +1,58 @@ +package mage.cards.w; + +import mage.abilities.Ability; +import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.SourceHasCounterCondition; +import mage.abilities.costs.common.WaterbendCost; +import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SetTargetPointer; +import mage.counters.CounterType; +import mage.filter.StaticFilters; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class WaterbenderAscension extends CardImpl { + + private static final Condition condition = new SourceHasCounterCondition(CounterType.QUEST, 4); + + public WaterbenderAscension(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}"); + + // Whenever a creature you control deals combat damage to a player, put a quest counter on this enchantment. Then if it has four or more quest counters on it, draw a card. + Ability ability = new DealsDamageToAPlayerAllTriggeredAbility( + new AddCountersSourceEffect(CounterType.QUEST.createInstance()), + StaticFilters.FILTER_CONTROLLED_CREATURE, false, SetTargetPointer.NONE, true + ); + ability.addEffect(new ConditionalOneShotEffect( + new DrawCardSourceControllerEffect(1), condition, + "Then if it has four or more quest counters on it, draw a card" + )); + this.addAbility(ability); + + // Waterbend {4}: Target creature can't be blocked this turn. + ability = new SimpleActivatedAbility(new CantBeBlockedTargetEffect(), new WaterbendCost(4)); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + private WaterbenderAscension(final WaterbenderAscension card) { + super(card); + } + + @Override + public WaterbenderAscension copy() { + return new WaterbenderAscension(this); + } +} diff --git a/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java b/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java index d1b0af177cb..31a61609bd2 100644 --- a/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java +++ b/Mage.Sets/src/mage/sets/AvatarTheLastAirbender.java @@ -327,6 +327,8 @@ public final class AvatarTheLastAirbender extends ExpansionSet { cards.add(new SetCardInfo("War Balloon", 159, Rarity.UNCOMMON, mage.cards.w.WarBalloon.class)); cards.add(new SetCardInfo("Water Tribe Captain", 41, Rarity.COMMON, mage.cards.w.WaterTribeCaptain.class)); cards.add(new SetCardInfo("Water Tribe Rallier", 42, Rarity.UNCOMMON, mage.cards.w.WaterTribeRallier.class)); + cards.add(new SetCardInfo("Waterbender Ascension", 310, Rarity.RARE, mage.cards.w.WaterbenderAscension.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Waterbender Ascension", 79, Rarity.RARE, mage.cards.w.WaterbenderAscension.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Waterbending Lesson", 80, Rarity.COMMON, mage.cards.w.WaterbendingLesson.class)); cards.add(new SetCardInfo("Watery Grasp", 82, Rarity.COMMON, mage.cards.w.WateryGrasp.class)); cards.add(new SetCardInfo("White Lotus Reinforcements", 251, Rarity.UNCOMMON, mage.cards.w.WhiteLotusReinforcements.class));