[M3C] Implement Eldritch Immunity

This commit is contained in:
theelk801 2024-06-05 11:51:50 -04:00
parent 5d0da3a55e
commit 0118913c5f
3 changed files with 61 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -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));

View file

@ -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);