diff --git a/Mage.Sets/src/mage/cards/e/EldritchImmunity.java b/Mage.Sets/src/mage/cards/e/EldritchImmunity.java new file mode 100644 index 00000000000..f1e51af5695 --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EldritchImmunity.java @@ -0,0 +1,59 @@ +package mage.cards.e; + +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.OverloadAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.FilterCard; +import mage.filter.StaticFilters; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ColorlessPredicate; +import mage.target.common.TargetControlledCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class EldritchImmunity extends CardImpl { + + private static final FilterCard filter = new FilterCard("each color"); + + static { + filter.add(Predicates.not(ColorlessPredicate.instance)); + } + + public EldritchImmunity(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.TRIBAL, CardType.INSTANT}, "{C}"); + + this.subtype.add(SubType.ELDRAZI); + + // Target creature you control gains protection from each color until end of turn. + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(new ProtectionAbility(filter))); + this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); + + // Overload {4}{C} + this.addAbility(new OverloadAbility( + this, + new GainAbilityControlledEffect( + new ProtectionAbility(filter), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE + ).setText("each creature you control gains protection from each color until end of turn"), + new ManaCostsImpl<>("{4}{C}") + )); + } + + private EldritchImmunity(final EldritchImmunity card) { + super(card); + } + + @Override + public EldritchImmunity copy() { + return new EldritchImmunity(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java b/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java index f73f65d4ea6..66d97313767 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java @@ -99,6 +99,7 @@ public final class ModernHorizons3Commander extends ExpansionSet { cards.add(new SetCardInfo("Eldrazi Displacer", 169, Rarity.RARE, mage.cards.e.EldraziDisplacer.class)); cards.add(new SetCardInfo("Eldrazi Monument", 290, Rarity.MYTHIC, mage.cards.e.EldraziMonument.class)); cards.add(new SetCardInfo("Eldrazi Temple", 339, Rarity.RARE, mage.cards.e.EldraziTemple.class)); + cards.add(new SetCardInfo("Eldritch Immunity", 33, Rarity.RARE, mage.cards.e.EldritchImmunity.class)); cards.add(new SetCardInfo("Elvish Rejuvenator", 226, Rarity.COMMON, mage.cards.e.ElvishRejuvenator.class)); cards.add(new SetCardInfo("Endbringer", 156, Rarity.RARE, mage.cards.e.Endbringer.class)); cards.add(new SetCardInfo("Era of Innovation", 183, Rarity.UNCOMMON, mage.cards.e.EraOfInnovation.class)); diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index bbe64ca168f..219da27fe47 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -146,6 +146,7 @@ public class VerifyCardDataTest { skipListAddName(SKIP_LIST_TYPE, "MH3", "Idol of False Gods"); // temporary, waiting for tribal -> kindred change skipListAddName(SKIP_LIST_TYPE, "M3C", "Tarmogoyf Nest"); // temporary, waiting for tribal -> kindred change skipListAddName(SKIP_LIST_TYPE, "MH3", "Kozilek's Command"); // temporary, waiting for tribal -> kindred change + skipListAddName(SKIP_LIST_TYPE, "MH3", "Eldritch Immunity"); // temporary, waiting for tribal -> kindred change // subtype // skipListAddName(SKIP_LIST_SUBTYPE, set, cardName);