diff --git a/Mage.Sets/src/mage/cards/w/WeRideAtDawn.java b/Mage.Sets/src/mage/cards/w/WeRideAtDawn.java new file mode 100644 index 00000000000..bf8e1c063ef --- /dev/null +++ b/Mage.Sets/src/mage/cards/w/WeRideAtDawn.java @@ -0,0 +1,60 @@ +package mage.cards.w; + +import mage.abilities.common.AttacksAllTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledSpellsEffect; +import mage.abilities.keyword.ConvokeAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SetTargetPointer; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.common.FilterNonlandCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.filter.predicate.mageobject.CommanderPredicate; +import mage.game.permanent.token.MercenaryToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class WeRideAtDawn extends CardImpl { + + private static final FilterNonlandCard filter = new FilterNonlandCard("legendary creature spells you cast"); + private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("your commander"); + + static { + filter.add(SuperType.LEGENDARY.getPredicate()); + filter.add(CardType.CREATURE.getPredicate()); + filter.add(Predicates.not(new AbilityPredicate(ConvokeAbility.class))); // So there are not redundant copies being added to each card + filter2.add(CommanderPredicate.instance); + filter2.add(TargetController.YOU.getOwnerPredicate()); + } + + public WeRideAtDawn(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}"); + + // Legendary creature spells you cast have convoke. + this.addAbility(new SimpleStaticAbility(new GainAbilityControlledSpellsEffect(new ConvokeAbility(), filter))); + + // Whenever your commander attacks, create a 1/1 red Mercenary creature token with "{T}: Target creature you control gets +1/+0 until end of turn. Activate only as a sorcery." + this.addAbility(new AttacksAllTriggeredAbility( + new CreateTokenEffect(new MercenaryToken()), false, + filter2, SetTargetPointer.NONE, false + )); + } + + private WeRideAtDawn(final WeRideAtDawn card) { + super(card); + } + + @Override + public WeRideAtDawn copy() { + return new WeRideAtDawn(this); + } +} diff --git a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java index 15c9d363fd1..45022f52f56 100644 --- a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java +++ b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java @@ -307,6 +307,7 @@ public final class OutlawsOfThunderJunctionCommander extends ExpansionSet { cards.add(new SetCardInfo("Viridescent Bog", 340, Rarity.RARE, mage.cards.v.ViridescentBog.class)); cards.add(new SetCardInfo("Void Attendant", 212, Rarity.UNCOMMON, mage.cards.v.VoidAttendant.class)); cards.add(new SetCardInfo("Volcanic Torrent", 184, Rarity.UNCOMMON, mage.cards.v.VolcanicTorrent.class)); + cards.add(new SetCardInfo("We Ride at Dawn", 12, Rarity.RARE, mage.cards.w.WeRideAtDawn.class)); cards.add(new SetCardInfo("Whirler Rogue", 122, Rarity.UNCOMMON, mage.cards.w.WhirlerRogue.class)); cards.add(new SetCardInfo("Windfall", 123, Rarity.UNCOMMON, mage.cards.w.Windfall.class)); cards.add(new SetCardInfo("Winding Way", 213, Rarity.COMMON, mage.cards.w.WindingWay.class));