From a2036e0c33af890da0a8a88b10ec9e125a36316c Mon Sep 17 00:00:00 2001 From: theelk801 Date: Thu, 6 Apr 2023 19:55:53 -0400 Subject: [PATCH] [MOM] Implement Compleated Huntmaster --- .../mage/cards/c/CompleatedHuntmaster.java | 47 +++++++++++++++++++ .../src/mage/cards/j/JunkyardGenius.java | 2 +- .../src/mage/cards/k/KillZoneAcrobat.java | 2 +- Mage.Sets/src/mage/cards/t/Thraxodemon.java | 2 +- .../src/mage/sets/MarchOfTheMachine.java | 1 + .../main/java/mage/filter/StaticFilters.java | 11 +++++ 6 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/c/CompleatedHuntmaster.java diff --git a/Mage.Sets/src/mage/cards/c/CompleatedHuntmaster.java b/Mage.Sets/src/mage/cards/c/CompleatedHuntmaster.java new file mode 100644 index 00000000000..6fd1bfb390a --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CompleatedHuntmaster.java @@ -0,0 +1,47 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.keyword.IncubateEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class CompleatedHuntmaster extends CardImpl { + + public CompleatedHuntmaster(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + + this.subtype.add(SubType.PHYREXIAN); + this.subtype.add(SubType.ELF); + this.subtype.add(SubType.WARRIOR); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // {1}, {T}, Sacrifice another creature or artifact: Incubate 3. + Ability ability = new SimpleActivatedAbility(new IncubateEffect(3), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT)); + this.addAbility(ability); + } + + private CompleatedHuntmaster(final CompleatedHuntmaster card) { + super(card); + } + + @Override + public CompleatedHuntmaster copy() { + return new CompleatedHuntmaster(this); + } +} diff --git a/Mage.Sets/src/mage/cards/j/JunkyardGenius.java b/Mage.Sets/src/mage/cards/j/JunkyardGenius.java index a12724880e6..60c11aba429 100644 --- a/Mage.Sets/src/mage/cards/j/JunkyardGenius.java +++ b/Mage.Sets/src/mage/cards/j/JunkyardGenius.java @@ -43,7 +43,7 @@ public final class JunkyardGenius extends CardImpl { Ability ability = new SimpleActivatedAbility(new BoostControlledEffect( 1, 1, Duration.EndOfTurn, true ).setText("until end of turn, other creatures you control get +1/+0"), new ManaCostsImpl<>("{1}{B}{R}")); - ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE)); + ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT)); ability.addEffect(new GainAbilityControlledEffect( new MenaceAbility(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES, true diff --git a/Mage.Sets/src/mage/cards/k/KillZoneAcrobat.java b/Mage.Sets/src/mage/cards/k/KillZoneAcrobat.java index 1a81f2200f5..49b1143b2d7 100644 --- a/Mage.Sets/src/mage/cards/k/KillZoneAcrobat.java +++ b/Mage.Sets/src/mage/cards/k/KillZoneAcrobat.java @@ -31,7 +31,7 @@ public final class KillZoneAcrobat extends CardImpl { // Whenever Kill-Zone Acrobat attacks, you may sacrifice another creature or artifact. If you do, Kill-Zone Acrobat gains flying until end of turn. this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid( new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), - new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE) + new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT) ))); } diff --git a/Mage.Sets/src/mage/cards/t/Thraxodemon.java b/Mage.Sets/src/mage/cards/t/Thraxodemon.java index 2ccb2b1eb1f..695a9d372c2 100644 --- a/Mage.Sets/src/mage/cards/t/Thraxodemon.java +++ b/Mage.Sets/src/mage/cards/t/Thraxodemon.java @@ -30,7 +30,7 @@ public final class Thraxodemon extends CardImpl { // {3}, {T}, Sacrifice another creature or artifact: Draw a card. Ability ability = new SimpleActivatedAbility(new DrawCardSourceControllerEffect(1), new GenericManaCost(3)); ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE)); + ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/MarchOfTheMachine.java b/Mage.Sets/src/mage/sets/MarchOfTheMachine.java index ab06a87f4bc..f846ce2ca45 100644 --- a/Mage.Sets/src/mage/sets/MarchOfTheMachine.java +++ b/Mage.Sets/src/mage/sets/MarchOfTheMachine.java @@ -59,6 +59,7 @@ public final class MarchOfTheMachine extends ExpansionSet { cards.add(new SetCardInfo("Collective Nightmare", 95, Rarity.UNCOMMON, mage.cards.c.CollectiveNightmare.class)); cards.add(new SetCardInfo("Coming In Hot", 136, Rarity.COMMON, mage.cards.c.ComingInHot.class)); cards.add(new SetCardInfo("Compleated Conjurer", 49, Rarity.UNCOMMON, mage.cards.c.CompleatedConjurer.class)); + cards.add(new SetCardInfo("Compleated Huntmaster", 96, Rarity.UNCOMMON, mage.cards.c.CompleatedHuntmaster.class)); cards.add(new SetCardInfo("Consuming Aetherborn", 97, Rarity.COMMON, mage.cards.c.ConsumingAetherborn.class)); cards.add(new SetCardInfo("Converter Beast", 180, Rarity.COMMON, mage.cards.c.ConverterBeast.class)); cards.add(new SetCardInfo("Copper Host Crusher", 181, Rarity.UNCOMMON, mage.cards.c.CopperHostCrusher.class)); diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index cceb3e85422..b08191a3951 100644 --- a/Mage/src/main/java/mage/filter/StaticFilters.java +++ b/Mage/src/main/java/mage/filter/StaticFilters.java @@ -436,6 +436,17 @@ public final class StaticFilters { FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE.setLockedFilter(true); } + public static final FilterControlledPermanent FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT = new FilterControlledPermanent("another creature or artifact"); + + static { + FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT.add(AnotherPredicate.instance); + FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT.add(Predicates.or( + CardType.ARTIFACT.getPredicate(), + CardType.CREATURE.getPredicate() + )); + FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE_SHORT_TEXT.setLockedFilter(true); + } + public static final FilterControlledPermanent FILTER_CONTROLLED_PERMANENT_ENCHANTMENT = new FilterControlledEnchantmentPermanent(); static {