From 6613f883fff2acae73383d4c191dd25b83dc44f1 Mon Sep 17 00:00:00 2001 From: PurpleCrowbar <26198472+PurpleCrowbar@users.noreply.github.com> Date: Wed, 22 May 2024 14:54:02 +0100 Subject: [PATCH] [M3C] Implement Azlask, the Swelling Scourge --- .../cards/a/AzlaskTheSwellingScourge.java | 73 +++++++++++++++++++ .../mage/sets/ModernHorizons3Commander.java | 4 + 2 files changed, 77 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java diff --git a/Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java b/Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java new file mode 100644 index 00000000000..bf164ff0536 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AzlaskTheSwellingScourge.java @@ -0,0 +1,73 @@ +package mage.cards.a; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesThisOrAnotherCreatureTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.SourceControllerCountersCount; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.effects.common.counter.AddCountersPlayersEffect; +import mage.abilities.keyword.AnnihilatorAbility; +import mage.abilities.keyword.IndestructibleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.counters.CounterType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ColorlessPredicate; + +import java.util.UUID; + +/** + * @author PurpleCrowbar + */ +public final class AzlaskTheSwellingScourge extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("colorless creature you control"); + private static final FilterPermanent filter2 = new FilterPermanent("Scions and Spawns"); + + static { + filter.add(ColorlessPredicate.instance); + filter2.add(Predicates.or( + SubType.SCION.getPredicate(), + SubType.SPAWN.getPredicate() + )); + } + + public AzlaskTheSwellingScourge(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}"); + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.ELDRAZI); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever Azlask, the Swelling Scourge or another colorless creature you control dies, you get an experience counter. + this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility(new AddCountersPlayersEffect( + CounterType.EXPERIENCE.createInstance(), TargetController.YOU + ), false, filter)); + + // {W}{U}{B}{R}{G}: Creatures you control get +X/+X until end of turn, where X is the number of experience counters you have. + // Scions and Spawns you control gain indestructible and annihilator 1 until end of turn. + Ability ability = new SimpleActivatedAbility(new BoostControlledEffect( + SourceControllerCountersCount.EXPERIENCE, SourceControllerCountersCount.EXPERIENCE, Duration.EndOfTurn + ).setText("creatures you control get +X/+X until end of turn, where X is the number of the experience counters you have."), new ManaCostsImpl<>("{W}{U}{B}{R}{G}")); + ability.addEffect(new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, filter2) + .setText("Scions and Spawns you control gain indestructible")); + ability.addEffect(new GainAbilityControlledEffect(new AnnihilatorAbility(1), Duration.EndOfTurn, filter2) + .concatBy("and").setText("annihilator 1 until end of turn")); + this.addAbility(ability); + } + + private AzlaskTheSwellingScourge(final AzlaskTheSwellingScourge card) { + super(card); + } + + @Override + public AzlaskTheSwellingScourge copy() { + return new AzlaskTheSwellingScourge(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java b/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java index 6d66c14ce32..dafba7998fe 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java @@ -21,6 +21,10 @@ public final class ModernHorizons3Commander extends ExpansionSet { cards.add(new SetCardInfo("Apex Devastator", 220, Rarity.MYTHIC, mage.cards.a.ApexDevastator.class)); cards.add(new SetCardInfo("Archon of Cruelty", 197, Rarity.MYTHIC, mage.cards.a.ArchonOfCruelty.class)); + cards.add(new SetCardInfo("Azlask, the Swelling Scourge", 5, Rarity.MYTHIC, mage.cards.a.AzlaskTheSwellingScourge.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Azlask, the Swelling Scourge", 9, Rarity.MYTHIC, mage.cards.a.AzlaskTheSwellingScourge.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Azlask, the Swelling Scourge", 17, Rarity.MYTHIC, mage.cards.a.AzlaskTheSwellingScourge.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Azlask, the Swelling Scourge", 25, Rarity.MYTHIC, mage.cards.a.AzlaskTheSwellingScourge.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Crib Swap", 168, Rarity.UNCOMMON, mage.cards.c.CribSwap.class)); cards.add(new SetCardInfo("Drowner of Hope", 182, Rarity.RARE, mage.cards.d.DrownerOfHope.class)); cards.add(new SetCardInfo("Final Act", 52, Rarity.RARE, mage.cards.f.FinalAct.class));