[MH3] Implement Emissary of Soulfire

This commit is contained in:
theelk801 2024-05-30 08:57:57 -04:00
parent ac39423832
commit 91f98086be
3 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1,51 @@
package mage.cards.e;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.common.PayEnergyCost;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.effects.common.counter.GetEnergyCountersControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class EmissaryOfSoulfire extends CardImpl {
public EmissaryOfSoulfire(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}");
this.subtype.add(SubType.DJINN);
this.subtype.add(SubType.MONK);
this.power = new MageInt(1);
this.toughness = new MageInt(4);
// When Emissary of Soulfire enters the battlefield, you get {E}{E}{E}.
this.addAbility(new EntersBattlefieldTriggeredAbility(new GetEnergyCountersControllerEffect(3)));
// Pay {E}{E}: Put an exalted counter on target creature you control. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(
new AddCountersTargetEffect(CounterType.EXALTED.createInstance()), new PayEnergyCost(2)
);
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
}
private EmissaryOfSoulfire(final EmissaryOfSoulfire card) {
super(card);
}
@Override
public EmissaryOfSoulfire copy() {
return new EmissaryOfSoulfire(this);
}
}

View file

@ -74,6 +74,7 @@ public final class ModernHorizons3 extends ExpansionSet {
cards.add(new SetCardInfo("Eldrazi Ravager", 5, Rarity.UNCOMMON, mage.cards.e.EldraziRavager.class)); cards.add(new SetCardInfo("Eldrazi Ravager", 5, Rarity.UNCOMMON, mage.cards.e.EldraziRavager.class));
cards.add(new SetCardInfo("Electrozoa", 60, Rarity.COMMON, mage.cards.e.Electrozoa.class)); cards.add(new SetCardInfo("Electrozoa", 60, Rarity.COMMON, mage.cards.e.Electrozoa.class));
cards.add(new SetCardInfo("Emerald Medallion", 291, Rarity.RARE, mage.cards.e.EmeraldMedallion.class)); cards.add(new SetCardInfo("Emerald Medallion", 291, Rarity.RARE, mage.cards.e.EmeraldMedallion.class));
cards.add(new SetCardInfo("Emissary of Soulfire", 183, Rarity.UNCOMMON, mage.cards.e.EmissaryOfSoulfire.class));
cards.add(new SetCardInfo("Emperor of Bones", 90, Rarity.RARE, mage.cards.e.EmperorOfBones.class)); cards.add(new SetCardInfo("Emperor of Bones", 90, Rarity.RARE, mage.cards.e.EmperorOfBones.class));
cards.add(new SetCardInfo("Emrakul's Messenger", 61, Rarity.UNCOMMON, mage.cards.e.EmrakulsMessenger.class)); cards.add(new SetCardInfo("Emrakul's Messenger", 61, Rarity.UNCOMMON, mage.cards.e.EmrakulsMessenger.class));
cards.add(new SetCardInfo("Emrakul, the World Anew", 6, Rarity.MYTHIC, mage.cards.e.EmrakulTheWorldAnew.class)); cards.add(new SetCardInfo("Emrakul, the World Anew", 6, Rarity.MYTHIC, mage.cards.e.EmrakulTheWorldAnew.class));

View file

@ -71,6 +71,7 @@ public enum CounterType {
ENERGY("energy"), ENERGY("energy"),
ENLIGHTENED("enlightened"), ENLIGHTENED("enlightened"),
EON("eon"), EON("eon"),
EXALTED("exalted"),
EXPERIENCE("experience"), EXPERIENCE("experience"),
EYEBALL("eyeball"), EYEBALL("eyeball"),
FADE("fade"), FADE("fade"),
@ -307,6 +308,8 @@ public enum CounterType {
return new AbilityCounter(DeathtouchAbility.getInstance(), amount); return new AbilityCounter(DeathtouchAbility.getInstance(), amount);
case DOUBLE_STRIKE: case DOUBLE_STRIKE:
return new AbilityCounter(DoubleStrikeAbility.getInstance(), amount); return new AbilityCounter(DoubleStrikeAbility.getInstance(), amount);
case EXALTED:
return new AbilityCounter(new ExaltedAbility(), amount);
case FIRST_STRIKE: case FIRST_STRIKE:
return new AbilityCounter(FirstStrikeAbility.getInstance(), amount); return new AbilityCounter(FirstStrikeAbility.getInstance(), amount);
case FLYING: case FLYING: