From 9fa3c50b01ca7027093d0aa0d372862c07e8046f Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sat, 8 Apr 2023 21:38:58 -0400 Subject: [PATCH] [MOC] Implement Slimefoot and Squee --- .../src/mage/cards/s/SlimefootAndSquee.java | 73 +++++++++++++++++++ .../mage/sets/MarchOfTheMachineCommander.java | 1 + 2 files changed, 74 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SlimefootAndSquee.java diff --git a/Mage.Sets/src/mage/cards/s/SlimefootAndSquee.java b/Mage.Sets/src/mage/cards/s/SlimefootAndSquee.java new file mode 100644 index 0000000000..2b60e0010b --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SlimefootAndSquee.java @@ -0,0 +1,73 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.common.FilterCreatureCard; +import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.game.permanent.token.SaprolingToken; +import mage.target.common.TargetCardInYourGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SlimefootAndSquee extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.SAPROLING); + private static final FilterCard filter2 = new FilterCreatureCard("another creature card from your graveyard"); + + static { + filter2.add(AnotherPredicate.instance); + } + + public SlimefootAndSquee(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{R}{G}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.FUNGUS); + this.subtype.add(SubType.GOBLIN); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Whenever Slimefoot and Squee enters the battlefield or attacks, create a 1/1 green Saproling creature token. + this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new CreateTokenEffect(new SaprolingToken()))); + + // {1}{B}{R}{G}, Sacrifice a Saproling: Return Slimefoot and Squee and up to one other target creature card from your graveyard to the battlefield. Activate only as a sorcery. + Ability ability = new ActivateAsSorceryActivatedAbility( + Zone.GRAVEYARD, + new ReturnSourceFromGraveyardToBattlefieldEffect() + .setText("return {this}"), + new ManaCostsImpl<>("{1}{B}{R}{G}") + ); + ability.addCost(new SacrificeTargetCost(filter)); + ability.addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect() + .setText("and up to one other target creature card from your graveyard to the battlefield")); + ability.addTarget(new TargetCardInYourGraveyard(filter2)); + this.addAbility(ability); + } + + private SlimefootAndSquee(final SlimefootAndSquee card) { + super(card); + } + + @Override + public SlimefootAndSquee copy() { + return new SlimefootAndSquee(this); + } +} diff --git a/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java b/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java index 2d08c3a3a1..ade60be934 100644 --- a/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java +++ b/Mage.Sets/src/mage/sets/MarchOfTheMachineCommander.java @@ -243,6 +243,7 @@ public final class MarchOfTheMachineCommander extends ExpansionSet { cards.add(new SetCardInfo("Skullclamp", 379, Rarity.UNCOMMON, mage.cards.s.Skullclamp.class)); cards.add(new SetCardInfo("Skyclave Relic", 380, Rarity.RARE, mage.cards.s.SkyclaveRelic.class)); cards.add(new SetCardInfo("Skycloud Expanse", 425, Rarity.RARE, mage.cards.s.SkycloudExpanse.class)); + cards.add(new SetCardInfo("Slimefoot and Squee", 447, Rarity.MYTHIC, mage.cards.s.SlimefootAndSquee.class)); cards.add(new SetCardInfo("Slurrk, All-Ingesting", 312, Rarity.UNCOMMON, mage.cards.s.SlurrkAllIngesting.class)); cards.add(new SetCardInfo("Smitten Swordmaster", 268, Rarity.COMMON, mage.cards.s.SmittenSwordmaster.class)); cards.add(new SetCardInfo("Sol Ring", 381, Rarity.UNCOMMON, mage.cards.s.SolRing.class));