mirror of
https://github.com/correl/mage.git
synced 2024-11-15 19:19:33 +00:00
[VOW] Implemented Henrika Domnathi / Henrika, Infernal Seer
This commit is contained in:
parent
e9d185a039
commit
79592acfd9
4 changed files with 141 additions and 8 deletions
63
Mage.Sets/src/mage/cards/h/HenrikaDomnathi.java
Normal file
63
Mage.Sets/src/mage/cards/h/HenrikaDomnathi.java
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
package mage.cards.h;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.Mode;
|
||||||
|
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||||
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
|
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||||
|
import mage.abilities.effects.common.SacrificeAllEffect;
|
||||||
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
|
import mage.constants.TargetController;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class HenrikaDomnathi extends CardImpl {
|
||||||
|
|
||||||
|
public HenrikaDomnathi(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
|
||||||
|
|
||||||
|
this.addSuperType(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.VAMPIRE);
|
||||||
|
this.power = new MageInt(3);
|
||||||
|
this.toughness = new MageInt(4);
|
||||||
|
this.secondSideCardClazz = mage.cards.h.HenrikaInfernalSeer.class;
|
||||||
|
|
||||||
|
// Flying
|
||||||
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
// At the beginning of combat on your turn, choose one that hasn't been chosen —
|
||||||
|
// • Each player sacrifices a creature.
|
||||||
|
Ability ability = new BeginningOfCombatTriggeredAbility(new SacrificeAllEffect(
|
||||||
|
1, StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT
|
||||||
|
), TargetController.YOU, false);
|
||||||
|
ability.getModes().setEachModeOnlyOnce(true);
|
||||||
|
|
||||||
|
// • You draw a card and you lose 1 life.
|
||||||
|
Mode mode = new Mode(new DrawCardSourceControllerEffect(1).setText("you draw a card"));
|
||||||
|
mode.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
|
||||||
|
|
||||||
|
// • Transform Henrika Domnathi.
|
||||||
|
ability.addEffect(new TransformSourceEffect());
|
||||||
|
this.addAbility(ability);
|
||||||
|
}
|
||||||
|
|
||||||
|
private HenrikaDomnathi(final HenrikaDomnathi card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HenrikaDomnathi copy() {
|
||||||
|
return new HenrikaDomnathi(this);
|
||||||
|
}
|
||||||
|
}
|
69
Mage.Sets/src/mage/cards/h/HenrikaInfernalSeer.java
Normal file
69
Mage.Sets/src/mage/cards/h/HenrikaInfernalSeer.java
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
package mage.cards.h;
|
||||||
|
|
||||||
|
import mage.MageInt;
|
||||||
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||||
|
import mage.abilities.keyword.DeathtouchAbility;
|
||||||
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
import mage.abilities.keyword.LifelinkAbility;
|
||||||
|
import mage.cards.CardImpl;
|
||||||
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.constants.*;
|
||||||
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
|
import mage.filter.predicate.Predicates;
|
||||||
|
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author TheElk801
|
||||||
|
*/
|
||||||
|
public final class HenrikaInfernalSeer extends CardImpl {
|
||||||
|
|
||||||
|
private static final FilterCreaturePermanent filter
|
||||||
|
= new FilterCreaturePermanent("creature you control with flying, deathtouch, and/or lifelink");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(TargetController.YOU.getControllerPredicate());
|
||||||
|
filter.add(Predicates.or(
|
||||||
|
new AbilityPredicate(FlyingAbility.class),
|
||||||
|
new AbilityPredicate(DeathtouchAbility.class),
|
||||||
|
new AbilityPredicate(LifelinkAbility.class)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public HenrikaInfernalSeer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
||||||
|
|
||||||
|
this.addSuperType(SuperType.LEGENDARY);
|
||||||
|
this.subtype.add(SubType.VAMPIRE);
|
||||||
|
this.power = new MageInt(3);
|
||||||
|
this.toughness = new MageInt(4);
|
||||||
|
this.color.setBlack(true);
|
||||||
|
this.nightCard = true;
|
||||||
|
|
||||||
|
// Flying
|
||||||
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
// Deathtouch
|
||||||
|
this.addAbility(DeathtouchAbility.getInstance());
|
||||||
|
|
||||||
|
// Lifelink
|
||||||
|
this.addAbility(LifelinkAbility.getInstance());
|
||||||
|
|
||||||
|
// {1}{B}{B}: Each creature you control with flying, deathtouch, and/or lifelink gets +1/+0 until end of turn.
|
||||||
|
this.addAbility(new SimpleActivatedAbility(new BoostAllEffect(
|
||||||
|
0, 1, Duration.EndOfTurn, filter, false
|
||||||
|
), new ManaCostsImpl<>("{1}{B}{B}")));
|
||||||
|
}
|
||||||
|
|
||||||
|
private HenrikaInfernalSeer(final HenrikaInfernalSeer card) {
|
||||||
|
super(card);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HenrikaInfernalSeer copy() {
|
||||||
|
return new HenrikaInfernalSeer(this);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,26 +1,25 @@
|
||||||
|
|
||||||
package mage.cards.i;
|
package mage.cards.i;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.abilities.effects.common.SacrificeAllEffect;
|
import mage.abilities.effects.common.SacrificeAllEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author jonubuu
|
* @author jonubuu
|
||||||
*/
|
*/
|
||||||
public final class InnocentBlood extends CardImpl {
|
public final class InnocentBlood extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
public InnocentBlood(UUID ownerId, CardSetInfo setInfo) {
|
public InnocentBlood(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}");
|
||||||
|
|
||||||
|
|
||||||
// Each player sacrifices a creature.
|
// Each player sacrifices a creature.
|
||||||
this.getSpellAbility().addEffect(new SacrificeAllEffect(1, new FilterControlledCreaturePermanent("creature")));
|
this.getSpellAbility().addEffect(new SacrificeAllEffect(
|
||||||
|
1, StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private InnocentBlood(final InnocentBlood card) {
|
private InnocentBlood(final InnocentBlood card) {
|
||||||
|
|
|
@ -141,6 +141,8 @@ public final class InnistradCrimsonVow extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Hallowed Haunting", 17, Rarity.MYTHIC, mage.cards.h.HallowedHaunting.class));
|
cards.add(new SetCardInfo("Hallowed Haunting", 17, Rarity.MYTHIC, mage.cards.h.HallowedHaunting.class));
|
||||||
cards.add(new SetCardInfo("Hamlet Vanguard", 201, Rarity.RARE, mage.cards.h.HamletVanguard.class));
|
cards.add(new SetCardInfo("Hamlet Vanguard", 201, Rarity.RARE, mage.cards.h.HamletVanguard.class));
|
||||||
cards.add(new SetCardInfo("Headless Rider", 118, Rarity.RARE, mage.cards.h.HeadlessRider.class));
|
cards.add(new SetCardInfo("Headless Rider", 118, Rarity.RARE, mage.cards.h.HeadlessRider.class));
|
||||||
|
cards.add(new SetCardInfo("Henrika Domnathi", 119, Rarity.MYTHIC, mage.cards.h.HenrikaDomnathi.class));
|
||||||
|
cards.add(new SetCardInfo("Henrika, Infernal Seer", 119, Rarity.MYTHIC, mage.cards.h.HenrikaInfernalSeer.class));
|
||||||
cards.add(new SetCardInfo("Hero's Downfall", 120, Rarity.UNCOMMON, mage.cards.h.HerosDownfall.class));
|
cards.add(new SetCardInfo("Hero's Downfall", 120, Rarity.UNCOMMON, mage.cards.h.HerosDownfall.class));
|
||||||
cards.add(new SetCardInfo("Heron of Hope", 18, Rarity.COMMON, mage.cards.h.HeronOfHope.class));
|
cards.add(new SetCardInfo("Heron of Hope", 18, Rarity.COMMON, mage.cards.h.HeronOfHope.class));
|
||||||
cards.add(new SetCardInfo("Hollowhenge Huntmaster", 187, Rarity.MYTHIC, mage.cards.h.HollowhengeHuntmaster.class));
|
cards.add(new SetCardInfo("Hollowhenge Huntmaster", 187, Rarity.MYTHIC, mage.cards.h.HollowhengeHuntmaster.class));
|
||||||
|
|
Loading…
Reference in a new issue