From 5f3715a8dc3db5599074cf68f0f09ce4c4426f3c Mon Sep 17 00:00:00 2001 From: theelk801 Date: Mon, 8 May 2023 17:38:40 -0400 Subject: [PATCH] [MAT] Implement Pia Nalaar, Consul of Revival --- .../cards/p/PiaNalaarConsulOfRevival.java | 80 +++++++++++++++++++ .../sets/MarchOfTheMachineTheAftermath.java | 1 + 2 files changed, 81 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/p/PiaNalaarConsulOfRevival.java diff --git a/Mage.Sets/src/mage/cards/p/PiaNalaarConsulOfRevival.java b/Mage.Sets/src/mage/cards/p/PiaNalaarConsulOfRevival.java new file mode 100644 index 00000000000..b2af8c19e28 --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PiaNalaarConsulOfRevival.java @@ -0,0 +1,80 @@ +package mage.cards.p; + +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.FilterPermanent; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.token.ThopterColorlessToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class PiaNalaarConsulOfRevival extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent(SubType.THOPTER, "Thopters"); + + public PiaNalaarConsulOfRevival(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{W}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.ARTIFICER); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Thopters you control have haste. + this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect( + HasteAbility.getInstance(), Duration.WhileOnBattlefield, filter + ))); + + // Whenever you play a land from exile or cast a spell from exile, create a 1/1 colorless Thopter artifact creature token with flying. + this.addAbility(new PiaNalaarConsulOfRevivalTriggeredAbility()); + } + + private PiaNalaarConsulOfRevival(final PiaNalaarConsulOfRevival card) { + super(card); + } + + @Override + public PiaNalaarConsulOfRevival copy() { + return new PiaNalaarConsulOfRevival(this); + } +} + +class PiaNalaarConsulOfRevivalTriggeredAbility extends TriggeredAbilityImpl { + + PiaNalaarConsulOfRevivalTriggeredAbility() { + super(Zone.BATTLEFIELD, new CreateTokenEffect(new ThopterColorlessToken())); + setTriggerPhrase("Whenever you play a land from exile or cast a spell from exile, "); + } + + private PiaNalaarConsulOfRevivalTriggeredAbility(final PiaNalaarConsulOfRevivalTriggeredAbility ability) { + super(ability); + } + + @Override + public PiaNalaarConsulOfRevivalTriggeredAbility copy() { + return new PiaNalaarConsulOfRevivalTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.LAND_PLAYED + || event.getType() == GameEvent.EventType.SPELL_CAST; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return isControlledBy(event.getPlayerId()) && event.getZone() == Zone.EXILED; + } +} diff --git a/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java b/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java index eec346c860e..fe3b7f07913 100644 --- a/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java +++ b/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java @@ -49,6 +49,7 @@ public final class MarchOfTheMachineTheAftermath extends ExpansionSet { cards.add(new SetCardInfo("Nissa, Resurgent Animist", 22, Rarity.MYTHIC, mage.cards.n.NissaResurgentAnimist.class)); cards.add(new SetCardInfo("Niv-Mizzet, Supreme", 40, Rarity.RARE, mage.cards.n.NivMizzetSupreme.class)); cards.add(new SetCardInfo("Open the Way", 23, Rarity.RARE, mage.cards.o.OpenTheWay.class)); + cards.add(new SetCardInfo("Pia Nalaar, Consul of Revival", 42, Rarity.RARE, mage.cards.p.PiaNalaarConsulOfRevival.class)); cards.add(new SetCardInfo("Plargg and Nassari", 18, Rarity.RARE, mage.cards.p.PlarggAndNassari.class)); cards.add(new SetCardInfo("Rebuild the City", 43, Rarity.RARE, mage.cards.r.RebuildTheCity.class)); cards.add(new SetCardInfo("Reckless Handling", 19, Rarity.UNCOMMON, mage.cards.r.RecklessHandling.class));