mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
[DSK] Implement Overlord of the Floodpits
This commit is contained in:
parent
83d937e17c
commit
a090349100
4 changed files with 96 additions and 0 deletions
46
Mage.Sets/src/mage/cards/o/OverlordOfTheFloodpits.java
Normal file
46
Mage.Sets/src/mage/cards/o/OverlordOfTheFloodpits.java
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
package mage.cards.o;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldOrAttacksSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.ImpendingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class OverlordOfTheFloodpits extends CardImpl {
|
||||
|
||||
public OverlordOfTheFloodpits(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{U}{U}");
|
||||
|
||||
this.subtype.add(SubType.AVATAR);
|
||||
this.subtype.add(SubType.HORROR);
|
||||
this.power = new MageInt(5);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Impending 4--{1}{U}{U}
|
||||
this.addAbility(new ImpendingAbility("{1}{U}{U}"));
|
||||
|
||||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever Overlord of the Floodpits enters or attacks, draw two cards, then discard a card.
|
||||
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new DrawDiscardControllerEffect(2, 1)));
|
||||
}
|
||||
|
||||
private OverlordOfTheFloodpits(final OverlordOfTheFloodpits card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OverlordOfTheFloodpits copy() {
|
||||
return new OverlordOfTheFloodpits(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -55,6 +55,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Mountain", 275, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS));
|
||||
cards.add(new SetCardInfo("Murky Sewer", 263, Rarity.COMMON, mage.cards.m.MurkySewer.class));
|
||||
cards.add(new SetCardInfo("Neglected Manor", 264, Rarity.COMMON, mage.cards.n.NeglectedManor.class));
|
||||
cards.add(new SetCardInfo("Overlord of the Floodpits", 68, Rarity.MYTHIC, mage.cards.o.OverlordOfTheFloodpits.class));
|
||||
cards.add(new SetCardInfo("Patched Plaything", 24, Rarity.UNCOMMON, mage.cards.p.PatchedPlaything.class));
|
||||
cards.add(new SetCardInfo("Patchwork Beastie", 195, Rarity.UNCOMMON, mage.cards.p.PatchworkBeastie.class));
|
||||
cards.add(new SetCardInfo("Peculiar Lighthouse", 265, Rarity.COMMON, mage.cards.p.PeculiarLighthouse.class));
|
||||
|
|
@ -88,5 +89,7 @@ public final class DuskmournHouseOfHorror extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Veteran Survivor", 40, Rarity.UNCOMMON, mage.cards.v.VeteranSurvivor.class));
|
||||
cards.add(new SetCardInfo("Winter, Misanthropic Guide", 240, Rarity.RARE, mage.cards.w.WinterMisanthropicGuide.class));
|
||||
cards.add(new SetCardInfo("Zimone, All-Questioning", 241, Rarity.RARE, mage.cards.z.ZimoneAllQuestioning.class));
|
||||
|
||||
cards.removeIf(setCardInfo -> setCardInfo.getName().startsWith("Overlord"));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,46 @@
|
|||
package mage.abilities.keyword;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.costs.AlternativeSourceCostsImpl;
|
||||
import mage.game.Game;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
/**
|
||||
* TODO: Implement this
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public class ImpendingAbility extends AlternativeSourceCostsImpl {
|
||||
|
||||
private static final String IMPENDING_KEYWORD = "Impending";
|
||||
private static final String IMPENDING_REMINDER = "If you cast this spell for its impending cost, " +
|
||||
"it enters with %s time counters and isn't a creature until the last is removed. " +
|
||||
"At the beginning of your end step, remove a time counter from it.";
|
||||
|
||||
public ImpendingAbility(String manaString) {
|
||||
this(manaString, 4);
|
||||
}
|
||||
|
||||
public ImpendingAbility(String manaString, int amount) {
|
||||
super(IMPENDING_KEYWORD + ' ' + amount, String.format(IMPENDING_REMINDER, CardUtil.numberToText(amount)), manaString);
|
||||
this.setRuleAtTheTop(true);
|
||||
}
|
||||
|
||||
private ImpendingAbility(final ImpendingAbility ability) {
|
||||
super(ability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImpendingAbility copy() {
|
||||
return new ImpendingAbility(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable(Ability source, Game game) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static String getActivationKey() {
|
||||
return getActivationKey(IMPENDING_KEYWORD);
|
||||
}
|
||||
}
|
||||
|
|
@ -65,6 +65,7 @@ Gift|card|
|
|||
Haste|instance|
|
||||
Hexproof|instance|
|
||||
Hideaway|number|
|
||||
Impending|manaString|
|
||||
Improvise|new|
|
||||
Indestructible|instance|
|
||||
Infect|instance|
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue