diff --git a/Mage.Sets/src/mage/cards/z/ZukoFirebendingMaster.java b/Mage.Sets/src/mage/cards/z/ZukoFirebendingMaster.java new file mode 100644 index 00000000000..7f277b96c69 --- /dev/null +++ b/Mage.Sets/src/mage/cards/z/ZukoFirebendingMaster.java @@ -0,0 +1,68 @@ +package mage.cards.z; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.CountersControllerCount; +import mage.abilities.effects.common.counter.AddCountersPlayersEffect; +import mage.constants.*; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FirebendingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.counters.CounterType; +import mage.filter.StaticFilters; +import mage.game.Game; +import mage.game.events.GameEvent; + +/** + * + * @author anonymous + */ +public final class ZukoFirebendingMaster extends CardImpl { + + private static final DynamicValue xValue = new CountersControllerCount(CounterType.EXPERIENCE); + + public ZukoFirebendingMaster(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.NOBLE); + this.subtype.add(SubType.ALLY); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // First strike + this.addAbility(FirstStrikeAbility.getInstance()); + + // Firebending X where X is the number of experience counters you have. + this.addAbility(new FirebendingAbility(xValue)); + + // Whenever you cast a spell during combat, you get an experience counter. + this.addAbility(new ZukoFirebendingMasterAbility()); + } + + private ZukoFirebendingMaster(final ZukoFirebendingMaster card) { + super(card); + } + + @Override + public ZukoFirebendingMaster copy() { + return new ZukoFirebendingMaster(this); + } +} + +class ZukoFirebendingMasterAbility extends SpellCastControllerTriggeredAbility { + + public ZukoFirebendingMasterAbility() { + super(new AddCountersPlayersEffect(CounterType.EXPERIENCE.createInstance(), TargetController.YOU), StaticFilters.FILTER_SPELL_A, false, SetTargetPointer.SPELL); + setTriggerPhrase("Whenever you cast a spell during combat, "); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return game.getTurnPhaseType() == TurnPhase.COMBAT && super.checkTrigger(event, game); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java b/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java index 3ec58b1b73a..1708ee26a47 100644 --- a/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java +++ b/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java @@ -217,6 +217,7 @@ public final class AvatarTheLastAirbenderEternal extends ExpansionSet { cards.add(new SetCardInfo("Zuko's Offense", 288, Rarity.COMMON, mage.cards.z.ZukosOffense.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Zuko, Avatar Hunter", 246, Rarity.RARE, mage.cards.z.ZukoAvatarHunter.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Zuko, Avatar Hunter", 287, Rarity.RARE, mage.cards.z.ZukoAvatarHunter.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Zuko, Firebending Master", 127, Rarity.MYTHIC, mage.cards.z.ZukoFirebendingMaster.class)); cards.removeIf(setCardInfo -> unfinished.contains(setCardInfo.getName())); }