diff --git a/Mage.Sets/src/mage/cards/a/AloySaviorOfMeridian.java b/Mage.Sets/src/mage/cards/a/AloySaviorOfMeridian.java new file mode 100644 index 00000000000..eec53f63ede --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AloySaviorOfMeridian.java @@ -0,0 +1,94 @@ +package mage.cards.a; + +import mage.MageInt; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.AttacksWithCreaturesTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.keyword.DiscoverEffect; +import mage.abilities.keyword.ReachAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.filter.StaticFilters; +import mage.game.Game; +import mage.players.Player; + +import java.util.Objects; +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class AloySaviorOfMeridian extends CardImpl { + + public AloySaviorOfMeridian(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{U}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.WARRIOR); + this.power = new MageInt(3); + this.toughness = new MageInt(5); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Reach + this.addAbility(ReachAbility.getInstance()); + + // In You, All Things Are Possible -- Whenever one or more artifact creatures you control attack, discover X, where X is the greatest power among them. + this.addAbility(new AttacksWithCreaturesTriggeredAbility( + new AloySaviorOfMeridianEffect(), 1, StaticFilters.FILTER_PERMANENT_ARTIFACT_CREATURE + ).setTriggerPhrase("Whenever one or more artifact creatures you control attack, ").withFlavorWord("In You, All Things Are Possible")); + } + + private AloySaviorOfMeridian(final AloySaviorOfMeridian card) { + super(card); + } + + @Override + public AloySaviorOfMeridian copy() { + return new AloySaviorOfMeridian(this); + } +} + +class AloySaviorOfMeridianEffect extends OneShotEffect { + + AloySaviorOfMeridianEffect() { + super(Outcome.Benefit); + staticText = "discover X, where X is the greatest power among them"; + } + + private AloySaviorOfMeridianEffect(final AloySaviorOfMeridianEffect effect) { + super(effect); + } + + @Override + public AloySaviorOfMeridianEffect copy() { + return new AloySaviorOfMeridianEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player == null) { + return false; + } + int power = this + .getTargetPointer() + .getTargets(game, source) + .stream() + .map(game::getPermanentOrLKIBattlefield) + .filter(Objects::nonNull) + .map(MageObject::getPower) + .mapToInt(MageInt::getValue) + .max() + .orElse(0); + return DiscoverEffect.doDiscover(player, power, game, source) != null; + } +} diff --git a/Mage.Sets/src/mage/sets/SecretLairDrop.java b/Mage.Sets/src/mage/sets/SecretLairDrop.java index ccabba45ece..4b92ee667a7 100644 --- a/Mage.Sets/src/mage/sets/SecretLairDrop.java +++ b/Mage.Sets/src/mage/sets/SecretLairDrop.java @@ -2070,6 +2070,7 @@ public class SecretLairDrop extends ExpansionSet { cards.add(new SetCardInfo("Ellie, Vengeful Hunter", 2203, Rarity.MYTHIC, mage.cards.e.EllieVengefulHunter.class)); cards.add(new SetCardInfo("Kratos, God of War", 2207, Rarity.MYTHIC, mage.cards.k.KratosGodOfWar.class)); cards.add(new SetCardInfo("Atreus, Impulsive Son", 2212, Rarity.MYTHIC, mage.cards.a.AtreusImpulsiveSon.class)); + cards.add(new SetCardInfo("Aloy, Savior of Meridian", 2221, Rarity.MYTHIC, mage.cards.a.AloySaviorOfMeridian.class)); cards.add(new SetCardInfo("Feed the Swarm", 7001, Rarity.RARE, mage.cards.f.FeedTheSwarm.class)); cards.add(new SetCardInfo("Forge Anew", 7002, Rarity.RARE, mage.cards.f.ForgeAnew.class)); cards.add(new SetCardInfo("Silence", 7003, Rarity.RARE, mage.cards.s.Silence.class, NON_FULL_USE_VARIOUS));