diff --git a/Mage.Sets/src/mage/cards/e/ElfhameDruid.java b/Mage.Sets/src/mage/cards/e/ElfhameDruid.java new file mode 100644 index 00000000000..c63c1f94f2a --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/ElfhameDruid.java @@ -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); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/Dominaria.java b/Mage.Sets/src/mage/sets/Dominaria.java index aab048bcb0e..0cd44d84438 100644 --- a/Mage.Sets/src/mage/sets/Dominaria.java +++ b/Mage.Sets/src/mage/sets/Dominaria.java @@ -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)); @@ -147,7 +148,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)); diff --git a/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java b/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java index 67ea7227535..ab83c989003 100644 --- a/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/KickerAbility.java @@ -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);