implement [MH3] Pearl-Ear, Imperial Advisor

This commit is contained in:
Susucre 2024-06-05 21:28:04 +02:00
parent 48ffa3ba84
commit c76daf52b8
2 changed files with 87 additions and 0 deletions

View file

@ -0,0 +1,86 @@
package mage.cards.p;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.AffinityEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledSpellsEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.abilities.keyword.LifelinkAbility;
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.FilterPermanent;
import mage.filter.FilterSpell;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.common.FilterNonlandCard;
import mage.filter.predicate.mageobject.TargetsPermanentPredicate;
import mage.filter.predicate.permanent.ModifiedPredicate;
import java.util.UUID;
/**
* @author Susucr
*/
public final class PearlEarImperialAdvisor extends CardImpl {
// Same as Mycosynth Golem, Nonland seems to be to not display the ability on lands.
private static final FilterNonlandCard filter = new FilterNonlandCard("Enchantment spells you cast");
static {
filter.add(CardType.ENCHANTMENT.getPredicate());
}
private static final FilterControlledPermanent filterPermanentAura = new FilterControlledPermanent(SubType.AURA, "Auras");
private static final Hint hint = new ValueHint(
"Auras you control", new PermanentsOnBattlefieldCount(filterPermanentAura)
);
private static final FilterPermanent filterModified = new FilterControlledPermanent();
private static final FilterSpell filterAura = new FilterSpell("Aura spell that targets a modified permanent you control");
static {
filterModified.add(ModifiedPredicate.instance);
filterAura.add(SubType.AURA.getPredicate());
filterAura.add(new TargetsPermanentPredicate(filterModified));
}
public PearlEarImperialAdvisor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.FOX);
this.subtype.add(SubType.ADVISOR);
this.power = new MageInt(3);
this.toughness = new MageInt(4);
// Lifelink
this.addAbility(LifelinkAbility.getInstance());
// Enchantment spells you cast have affinity for Auras.
this.addAbility(new SimpleStaticAbility(
new GainAbilityControlledSpellsEffect(
new SimpleStaticAbility(Zone.ALL, new AffinityEffect(filterPermanentAura)).addHint(hint),
filter
)
));
// Whenever you cast an Aura spell that targets a modified permanent you control, draw a card.
this.addAbility(new SpellCastControllerTriggeredAbility(new DrawCardSourceControllerEffect(1), filterAura, false));
}
private PearlEarImperialAdvisor(final PearlEarImperialAdvisor card) {
super(card);
}
@Override
public PearlEarImperialAdvisor copy() {
return new PearlEarImperialAdvisor(this);
}
}

View file

@ -197,6 +197,7 @@ public final class ModernHorizons3 extends ExpansionSet {
cards.add(new SetCardInfo("Orim's Chant", 265, Rarity.RARE, mage.cards.o.OrimsChant.class));
cards.add(new SetCardInfo("Path of Annihilation", 165, Rarity.UNCOMMON, mage.cards.p.PathOfAnnihilation.class));
cards.add(new SetCardInfo("Pearl Medallion", 294, Rarity.RARE, mage.cards.p.PearlMedallion.class));
cards.add(new SetCardInfo("Pearl-Ear, Imperial Advisor", 39, Rarity.RARE, mage.cards.p.PearlEarImperialAdvisor.class));
cards.add(new SetCardInfo("Perilous Landscape", 223, Rarity.COMMON, mage.cards.p.PerilousLandscape.class));
cards.add(new SetCardInfo("Petrifying Meddler", 66, Rarity.COMMON, mage.cards.p.PetrifyingMeddler.class));
cards.add(new SetCardInfo("Phelia, Exuberant Shepherd", 40, Rarity.RARE, mage.cards.p.PheliaExuberantShepherd.class));