Implemented Foulmire Knight, added a rudimentary nonfunctional implementation of Adventure cards

This commit is contained in:
Evan Kranzler 2019-09-05 20:54:34 -04:00
parent a366ec019f
commit 3f31efafcd
4 changed files with 73 additions and 1 deletions

View file

@ -0,0 +1,44 @@
package mage.cards.f;
import mage.MageInt;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.keyword.DeathtouchAbility;
import mage.cards.AdventureCard;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class FoulmireKnight extends AdventureCard {
public FoulmireKnight(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new CardType[]{CardType.INSTANT}, "{B}", "{2}{B}");
this.subtype.add(SubType.ZOMBIE);
this.subtype.add(SubType.KNIGHT);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
// Deathtouch
this.addAbility(DeathtouchAbility.getInstance());
// Profane Insight
// You draw a card and you lose 1 life.
adventureSpellAbility.addEffect(new DrawCardSourceControllerEffect(1).setText("You draw a card and"));
adventureSpellAbility.addEffect(new LoseLifeSourceControllerEffect(1));
}
private FoulmireKnight(final FoulmireKnight card) {
super(card);
}
@Override
public FoulmireKnight copy() {
return new FoulmireKnight(this);
}
}

View file

@ -1,5 +1,6 @@
package mage.sets;
import mage.cards.AdventureCard;
import mage.cards.ExpansionSet;
import mage.constants.Rarity;
import mage.constants.SetType;
@ -43,6 +44,7 @@ public final class ThroneOfEldraine extends ExpansionSet {
cards.add(new SetCardInfo("Eye Collector", 86, Rarity.COMMON, mage.cards.e.EyeCollector.class));
cards.add(new SetCardInfo("Faerie Formation", 316, Rarity.RARE, mage.cards.f.FaerieFormation.class));
cards.add(new SetCardInfo("Fireborn Knight", 210, Rarity.UNCOMMON, mage.cards.f.FirebornKnight.class));
cards.add(new SetCardInfo("Foulmire Knight", 90, Rarity.UNCOMMON, mage.cards.f.FoulmireKnight.class));
cards.add(new SetCardInfo("Garruk, Cursed Huntsman", 270, Rarity.MYTHIC, mage.cards.g.GarrukCursedHuntsman.class));
cards.add(new SetCardInfo("Gilded Goose", 160, Rarity.RARE, mage.cards.g.GildedGoose.class));
cards.add(new SetCardInfo("Gluttonous Troll", 327, Rarity.RARE, mage.cards.g.GluttonousTroll.class));
@ -63,5 +65,8 @@ public final class ThroneOfEldraine extends ExpansionSet {
cards.add(new SetCardInfo("Tome of Legends", 332, Rarity.RARE, mage.cards.t.TomeOfLegends.class));
cards.add(new SetCardInfo("Wishful Merfolk", 73, Rarity.COMMON, mage.cards.w.WishfulMerfolk.class));
cards.add(new SetCardInfo("Witching Well", 74, Rarity.COMMON, mage.cards.w.WitchingWell.class));
// This is here to prevent the incomplete adventure implementation from causing problems and will be removed
cards.removeIf(setCardInfo -> AdventureCard.class.isAssignableFrom(setCardInfo.getCardClass()));
}
}

View file

@ -0,0 +1,22 @@
package mage.cards;
import mage.abilities.SpellAbility;
import mage.constants.CardType;
import java.util.UUID;
/**
* @author TheElk801
*/
public abstract class AdventureCard extends CardImpl {
protected SpellAbility adventureSpellAbility = new SpellAbility(null, null);
public AdventureCard(UUID ownerId, CardSetInfo setInfo, CardType[] typesLeft, CardType[] typesRight, String costsLeft, String costsRight) {
super(ownerId, setInfo, typesLeft, costsLeft);
}
public AdventureCard(AdventureCard card) {
super(card);
}
}

View file

@ -14,7 +14,8 @@ public enum SpellAbilityType {
SPLIT_LEFT("LeftSplit SpellAbility"),
SPLIT_RIGHT("RightSplit SpellAbility"),
MODE("Mode SpellAbility"),
SPLICE("Spliced SpellAbility");
SPLICE("Spliced SpellAbility"),
ADVENTURE("Adventure SpellAbility");
private final String text;