Add Elfhame Druid

This commit is contained in:
Jimmy Gunter 2018-04-18 08:55:59 -07:00
parent 6dec2cfc17
commit 2a22e67754
3 changed files with 80 additions and 1 deletions

View file

@ -0,0 +1,72 @@
package mage.cards.e;
import mage.ConditionalMana;
import mage.MageInt;
import mage.MageObject;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.keyword.KickerAbility;
import mage.abilities.mana.ConditionalColoredManaAbility;
import mage.abilities.mana.GreenManaAbility;
import mage.abilities.mana.builder.ConditionalManaBuilder;
import mage.abilities.mana.conditional.ManaCondition;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.game.Game;
import java.util.UUID;
public class ElfhameDruid extends CardImpl {
public ElfhameDruid(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
this.subtype.add(SubType.ELF);
this.subtype.add(SubType.DRUID);
this.power = new MageInt(0);
this.toughness = new MageInt(2);
// {T}: Add {G}.
this.addAbility(new GreenManaAbility());
// {T}: Add {G}{G}. Spend this mana only to cast kicked spells.
this.addAbility(new ConditionalColoredManaAbility(new TapSourceCost(), Mana.GreenMana(2), new ElfhameDruidManaBuilder()));
}
public ElfhameDruid(final ElfhameDruid card) {
super(card);
}
@Override
public ElfhameDruid copy() {
return new ElfhameDruid(this);
}
}
class ElfhameDruidManaBuilder extends ConditionalManaBuilder {
@Override
public ConditionalMana build(Object... options) {
return new mage.cards.e.ElfhameDruidConditionalMana(this.mana);
}
@Override
public String getRule() {
return "Spend this mana only to cast kicked spells.";
}
}
class ElfhameDruidConditionalMana extends ConditionalMana {
public ElfhameDruidConditionalMana(Mana mana) {
super(mana);
addCondition(KickedCondition.instance);
}
}

View file

@ -111,6 +111,7 @@ public class Dominaria extends ExpansionSet {
cards.add(new SetCardInfo("Dread Shade", 88, Rarity.RARE, mage.cards.d.DreadShade.class));
cards.add(new SetCardInfo("Drudge Sentinel", 89, Rarity.COMMON, mage.cards.d.DrudgeSentinel.class));
cards.add(new SetCardInfo("Dub", 15, Rarity.SPECIAL, mage.cards.d.Dub.class));
cards.add(new SetCardInfo("Elfhame Druid", 159, Rarity.UNCOMMON, mage.cards.e.ElfhameDruid.class));
cards.add(new SetCardInfo("Eviscerate", 91, Rarity.COMMON, mage.cards.e.Eviscerate.class));
cards.add(new SetCardInfo("Evra, Halcyon Witness", 16, Rarity.RARE, mage.cards.e.EvraHalcyonWitness.class));
cards.add(new SetCardInfo("Excavation Elephant", 17, Rarity.COMMON, mage.cards.e.ExcavationElephant.class));
@ -146,7 +147,7 @@ public class Dominaria extends ExpansionSet {
cards.add(new SetCardInfo("Grunn, the Lonely King", 165, Rarity.UNCOMMON, mage.cards.g.GrunnTheLonelyKing.class));
cards.add(new SetCardInfo("Guardians of Koilos", 216, Rarity.COMMON, mage.cards.g.GuardiansOfKoilos.class));
cards.add(new SetCardInfo("Hallar, the Firefletcher", 196, Rarity.UNCOMMON, mage.cards.h.HallarTheFirefletcher.class));
cards.add(new SetCardInfo("Healing Grace", 20, Rarity.COMMON, mage.cards.h.HealingGrace.class));
cards.add(new SetCardInfo("Healing Grace", 20, Rarity.COMMON, mage.cards.h.HealingGrace.class));
cards.add(new SetCardInfo("Helm of the Host", 217, Rarity.RARE, mage.cards.h.HelmOfTheHost.class));
cards.add(new SetCardInfo("Hinterland Harbor", 240, Rarity.RARE, mage.cards.h.HinterlandHarbor.class));
cards.add(new SetCardInfo("History of Benalia", 21, Rarity.MYTHIC, mage.cards.h.HistoryOfBenalia.class));

View file

@ -74,6 +74,8 @@ import java.util.*;
*/
public class KickerAbility extends StaticAbility implements OptionalAdditionalSourceCosts {
private static final KickerAbility instance = new KickerAbility("");
protected static final String KICKER_KEYWORD = "Kicker";
protected static final String KICKER_REMINDER_MANA = "You may pay an additional {cost} as you cast this spell.";
protected static final String KICKER_REMINDER_COST = "You may {cost} in addition to any other costs as you cast this spell.";
@ -113,6 +115,10 @@ public class KickerAbility extends StaticAbility implements OptionalAdditionalSo
}
public static KickerAbility getInstance() {
return instance;
}
@Override
public KickerAbility copy() {
return new KickerAbility(this);