diff --git a/Mage.Sets/src/mage/cards/a/ArcanistsOwl.java b/Mage.Sets/src/mage/cards/a/ArcanistsOwl.java index eb42874e68..4684c16b20 100644 --- a/Mage.Sets/src/mage/cards/a/ArcanistsOwl.java +++ b/Mage.Sets/src/mage/cards/a/ArcanistsOwl.java @@ -39,7 +39,7 @@ public final class ArcanistsOwl extends CardImpl { Zone.LIBRARY, false, true, false, Zone.HAND, true, false, false ).setBackInRandomOrder(true).setText("Look at the top four cards of your library. " + - "You may reveal an artifact or enchantment from among them and put it into your hand. " + + "You may reveal an artifact or enchantment card from among them and put it into your hand. " + "Put the rest on the bottom of your library in a random order.") )); } diff --git a/Mage.Sets/src/mage/cards/s/SionaCaptainOfThePyleas.java b/Mage.Sets/src/mage/cards/s/SionaCaptainOfThePyleas.java new file mode 100644 index 0000000000..4e53bd7233 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SionaCaptainOfThePyleas.java @@ -0,0 +1,106 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +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.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.HumanSoldierToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SionaCaptainOfThePyleas extends CardImpl { + + private static final FilterCard filter = new FilterCard("an Aura card"); + + static { + filter.add(new SubtypePredicate(SubType.AURA)); + } + + public SionaCaptainOfThePyleas(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{W}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.SOLDIER); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Siona, Captain of the Pyleas enters the battlefield, look at the top seven cards of your library. You may reveal an Aura card among them and put it into your hand. Put the rest on the bottom of your library in a random order. + this.addAbility(new EntersBattlefieldTriggeredAbility( + new LookLibraryAndPickControllerEffect( + new StaticValue(7), false, new StaticValue(1), filter, + Zone.LIBRARY, false, true, false, Zone.HAND, + true, false, false + ).setBackInRandomOrder(true).setText("Look at the top seven cards of your library. " + + "You may reveal an Aura card from among them and put it into your hand. " + + "Put the rest on the bottom of your library in a random order.") + )); + + // Whenever an Aura you control becomes attached to a creature you control, create a 1/1 white Human Soldier creature token. + this.addAbility(new SionaCaptainOfThePyleasAbility()); + } + + private SionaCaptainOfThePyleas(final SionaCaptainOfThePyleas card) { + super(card); + } + + @Override + public SionaCaptainOfThePyleas copy() { + return new SionaCaptainOfThePyleas(this); + } +} + +class SionaCaptainOfThePyleasAbility extends TriggeredAbilityImpl { + + SionaCaptainOfThePyleasAbility() { + super(Zone.BATTLEFIELD, new CreateTokenEffect(new HumanSoldierToken()), false); + } + + private SionaCaptainOfThePyleasAbility(final SionaCaptainOfThePyleasAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ATTACHED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); + Permanent attachment = game.getPermanent(event.getSourceId()); + return permanent != null + && attachment != null + && permanent.isControlledBy(getControllerId()) + && permanent.isCreature() + && attachment.isControlledBy(getControllerId()) + && attachment.hasSubtype(SubType.AURA, game); + } + + @Override + public String getRule() { + return "Whenever an Aura you control becomes attached to a creature you control, " + + "create a 1/1 white Human Soldier creature token"; + } + + @Override + public SionaCaptainOfThePyleasAbility copy() { + return new SionaCaptainOfThePyleasAbility(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java index 0d0dcad771..7662bc9acc 100644 --- a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java +++ b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java @@ -106,6 +106,7 @@ public final class TherosBeyondDeath extends ExpansionSet { cards.add(new SetCardInfo("Setessan Petitioner", 199, Rarity.UNCOMMON, mage.cards.s.SetessanPetitioner.class)); cards.add(new SetCardInfo("Shimmerwing Chimera", 64, Rarity.UNCOMMON, mage.cards.s.ShimmerwingChimera.class)); cards.add(new SetCardInfo("Shoal Kraken", 65, Rarity.UNCOMMON, mage.cards.s.ShoalKraken.class)); + cards.add(new SetCardInfo("Siona, Captain of the Pyleas", 226, Rarity.UNCOMMON, mage.cards.s.SionaCaptainOfThePyleas.class)); cards.add(new SetCardInfo("Sphinx Mindbreaker", 290, Rarity.RARE, mage.cards.s.SphinxMindbreaker.class)); cards.add(new SetCardInfo("Staggering Insight", 228, Rarity.UNCOMMON, mage.cards.s.StaggeringInsight.class)); cards.add(new SetCardInfo("Stinging Lionfish", 69, Rarity.UNCOMMON, mage.cards.s.StingingLionfish.class));