From 76d461e75576cf643a53557e4ba23e991c5f7d30 Mon Sep 17 00:00:00 2001 From: Daniel Bomar Date: Fri, 26 Aug 2022 12:57:44 -0500 Subject: [PATCH] [DMU] Implemented Phyrexian Warhorse --- .../src/mage/cards/p/PhyrexianWarhorse.java | 64 +++++++++++++++++++ Mage.Sets/src/mage/sets/DominariaUnited.java | 1 + 2 files changed, 65 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/p/PhyrexianWarhorse.java diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianWarhorse.java b/Mage.Sets/src/mage/cards/p/PhyrexianWarhorse.java new file mode 100644 index 00000000000..6751a702f7a --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PhyrexianWarhorse.java @@ -0,0 +1,64 @@ +package mage.cards.p; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.common.KickedCondition; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.abilities.keyword.KickerAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.StaticFilters; +import mage.game.permanent.token.SoldierToken; + +/** + * + * @author weirddan455 + */ +public final class PhyrexianWarhorse extends CardImpl { + + public PhyrexianWarhorse(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add(SubType.PHYREXIAN); + this.subtype.add(SubType.HORSE); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Kicker {W} + this.addAbility(new KickerAbility("{W}")); + + // When Phyrexian Warhorse enters the battlefield, if it was kicked, create a 1/1 white Soldier creature token. + this.addAbility(new ConditionalInterveningIfTriggeredAbility( + new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SoldierToken())), + KickedCondition.ONCE, + "When {this} enters the battlefield, if it was kicked, create a 1/1 white Soldier creature token." + )); + + // {1}, Sacrifice another creature: Phyrexian Warhorse gets +2/+1 until end of turn. + Ability ability = new SimpleActivatedAbility( + new BoostSourceEffect(2, 1, Duration.EndOfTurn), + new GenericManaCost(1) + ); + ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)); + this.addAbility(ability); + } + + private PhyrexianWarhorse(final PhyrexianWarhorse card) { + super(card); + } + + @Override + public PhyrexianWarhorse copy() { + return new PhyrexianWarhorse(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DominariaUnited.java b/Mage.Sets/src/mage/sets/DominariaUnited.java index ed1106d3ca8..455c70787dc 100644 --- a/Mage.Sets/src/mage/sets/DominariaUnited.java +++ b/Mage.Sets/src/mage/sets/DominariaUnited.java @@ -105,6 +105,7 @@ public final class DominariaUnited extends ExpansionSet { cards.add(new SetCardInfo("Phoenix Chick", 140, Rarity.UNCOMMON, mage.cards.p.PhoenixChick.class)); cards.add(new SetCardInfo("Phyrexian Espionage", 60, Rarity.COMMON, mage.cards.p.PhyrexianEspionage.class)); cards.add(new SetCardInfo("Phyrexian Rager", 99, Rarity.COMMON, mage.cards.p.PhyrexianRager.class)); + cards.add(new SetCardInfo("Phyrexian Warhorse", 101, Rarity.COMMON, mage.cards.p.PhyrexianWarhorse.class)); cards.add(new SetCardInfo("Pilfer", 102, Rarity.UNCOMMON, mage.cards.p.Pilfer.class)); cards.add(new SetCardInfo("Plains", 262, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Protect the Negotiators", 62, Rarity.UNCOMMON, mage.cards.p.ProtectTheNegotiators.class));