forked from External/mage
Add Elfhame Druid
This commit is contained in:
parent
6dec2cfc17
commit
2a22e67754
3 changed files with 80 additions and 1 deletions
72
Mage.Sets/src/mage/cards/e/ElfhameDruid.java
Normal file
72
Mage.Sets/src/mage/cards/e/ElfhameDruid.java
Normal 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue