diff --git a/Mage.Sets/src/mage/cards/r/RadiantSerraArchangel.java b/Mage.Sets/src/mage/cards/r/RadiantSerraArchangel.java new file mode 100644 index 00000000000..c3e4f685023 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RadiantSerraArchangel.java @@ -0,0 +1,68 @@ +package mage.cards.r; + +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapTargetCost; +import mage.abilities.effects.common.continuous.GainProtectionFromColorSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.PartnerAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class RadiantSerraArchangel extends CardImpl { + + private static final FilterControlledPermanent filter + = new FilterControlledCreaturePermanent("another untapped creature you control with flying"); + + static { + filter.add(Predicates.not(TappedPredicate.instance)); + filter.add(AnotherPredicate.instance); + filter.add(new AbilityPredicate(FlyingAbility.class)); + } + + public RadiantSerraArchangel(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{6}{W}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.ANGEL); + this.power = new MageInt(6); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Tap another untapped creature you control with flying: Radiant, Serra Archangel gains protection from the color of your choice until end of turn. + this.addAbility(new SimpleActivatedAbility( + new GainProtectionFromColorSourceEffect(Duration.EndOfTurn), + new TapTargetCost(new TargetControlledPermanent(filter)) + )); + + // Partner + this.addAbility(PartnerAbility.getInstance()); + } + + private RadiantSerraArchangel(final RadiantSerraArchangel card) { + super(card); + } + + @Override + public RadiantSerraArchangel copy() { + return new RadiantSerraArchangel(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderLegends.java b/Mage.Sets/src/mage/sets/CommanderLegends.java index 7c576b58fdb..b494ab334d6 100644 --- a/Mage.Sets/src/mage/sets/CommanderLegends.java +++ b/Mage.Sets/src/mage/sets/CommanderLegends.java @@ -79,6 +79,7 @@ public final class CommanderLegends extends ExpansionSet { cards.add(new SetCardInfo("Prossh, Skyraider of Kher", 530, Rarity.MYTHIC, mage.cards.p.ProsshSkyraiderOfKher.class)); cards.add(new SetCardInfo("Prying Eyes", 86, Rarity.COMMON, mage.cards.p.PryingEyes.class)); cards.add(new SetCardInfo("Queen Marchesa", 531, Rarity.MYTHIC, mage.cards.q.QueenMarchesa.class)); + cards.add(new SetCardInfo("Radiant, Serra Archangel", 40, Rarity.UNCOMMON, mage.cards.r.RadiantSerraArchangel.class)); cards.add(new SetCardInfo("Raise the Alarm", 41, Rarity.COMMON, mage.cards.r.RaiseTheAlarm.class)); cards.add(new SetCardInfo("Rebbec, Architect of Ascension", 42, Rarity.UNCOMMON, mage.cards.r.RebbecArchitectOfAscension.class)); cards.add(new SetCardInfo("Rejuvenating Springs", 354, Rarity.RARE, mage.cards.r.RejuvenatingSprings.class));