diff --git a/Mage.Sets/src/mage/cards/e/ElendaSaintOfDusk.java b/Mage.Sets/src/mage/cards/e/ElendaSaintOfDusk.java new file mode 100644 index 00000000000..979ee32827c --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/ElendaSaintOfDusk.java @@ -0,0 +1,77 @@ +package mage.cards.e; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.MoreThanStartingLifeTotalCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.HexproofFromInstantsAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; + +import java.util.UUID; + +/** + * + * @author ciaccona007 + */ +public final class ElendaSaintOfDusk extends CardImpl { + + public ElendaSaintOfDusk(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{B}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.VAMPIRE); + this.subtype.add(SubType.KNIGHT); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + + // Hexproof from instants + this.addAbility(HexproofFromInstantsAbility.getInstance()); + + // As long as your life total is greater than your starting life total, Elenda gets +1/+1 and has menace. Elenda gets an additional +5/+5 as long as your life total is at least 10 greater than your starting life total. + Ability ability = new SimpleStaticAbility( + new ConditionalContinuousEffect( + new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), + MoreThanStartingLifeTotalCondition.ONE, + "As long as your life total is greater than your starting life total, {this} gets +1/+1" + ) + ); + ability.addEffect( + new ConditionalContinuousEffect( + new GainAbilitySourceEffect(new MenaceAbility()), + MoreThanStartingLifeTotalCondition.ONE, + "and has menace" + ) + ); + ability.addEffect( + new ConditionalContinuousEffect( + new BoostSourceEffect(5, 5, Duration.WhileOnBattlefield), + MoreThanStartingLifeTotalCondition.TEN, + "{this} gets an additional +5/+5 as long as your life total is at least " + + "10 greater than your starting life total" + ) + ); + this.addAbility(ability); + } + + private ElendaSaintOfDusk(final ElendaSaintOfDusk card) { + super(card); + } + + @Override + public ElendaSaintOfDusk copy() { + return new ElendaSaintOfDusk(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Foundations.java b/Mage.Sets/src/mage/sets/Foundations.java index d73ae9c1b11..5a3a2eafb53 100644 --- a/Mage.Sets/src/mage/sets/Foundations.java +++ b/Mage.Sets/src/mage/sets/Foundations.java @@ -166,6 +166,7 @@ public final class Foundations extends ExpansionSet { cards.add(new SetCardInfo("Eaten by Piranhas", 507, Rarity.UNCOMMON, mage.cards.e.EatenByPiranhas.class)); cards.add(new SetCardInfo("Electroduplicate", 85, Rarity.RARE, mage.cards.e.Electroduplicate.class)); cards.add(new SetCardInfo("Elementalist Adept", 36, Rarity.COMMON, mage.cards.e.ElementalistAdept.class)); + cards.add(new SetCardInfo("Elenda, Saint of Dusk", 119, Rarity.RARE, mage.cards.e.ElendaSaintOfDusk.class)); cards.add(new SetCardInfo("Elfsworn Giant", 103, Rarity.COMMON, mage.cards.e.ElfswornGiant.class)); cards.add(new SetCardInfo("Elspeth's Smite", 493, Rarity.UNCOMMON, mage.cards.e.ElspethsSmite.class)); cards.add(new SetCardInfo("Elvish Archdruid", 219, Rarity.RARE, mage.cards.e.ElvishArchdruid.class)); diff --git a/Mage/src/main/java/mage/abilities/condition/common/MoreThanStartingLifeTotalCondition.java b/Mage/src/main/java/mage/abilities/condition/common/MoreThanStartingLifeTotalCondition.java index 7410f688ad8..080cf4a7483 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/MoreThanStartingLifeTotalCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/MoreThanStartingLifeTotalCondition.java @@ -12,9 +12,10 @@ import java.util.Optional; * @author TheElk801 */ public enum MoreThanStartingLifeTotalCondition implements Condition { + ONE(1), SEVEN(7), TEN(10), - FIFTEEN(10); + FIFTEEN(15); private final int amount; MoreThanStartingLifeTotalCondition(int amount) { diff --git a/Mage/src/main/java/mage/abilities/keyword/HexproofFromInstantsAbility.java b/Mage/src/main/java/mage/abilities/keyword/HexproofFromInstantsAbility.java new file mode 100644 index 00000000000..9110530af57 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/keyword/HexproofFromInstantsAbility.java @@ -0,0 +1,53 @@ +package mage.abilities.keyword; + +import mage.MageObject; +import mage.abilities.Ability; +import mage.game.Game; + +import java.io.ObjectStreamException; + +/** + * Hexproof from instants + * + * @author ciaccona007 + */ +public class HexproofFromInstantsAbility extends HexproofBaseAbility { + + private static final HexproofFromInstantsAbility instance; + + static { + instance = new HexproofFromInstantsAbility(); + } + + private Object readResolve() throws ObjectStreamException { + return instance; + } + + public static HexproofFromInstantsAbility getInstance() { + return instance; + } + + private HexproofFromInstantsAbility() { + super(); + } + + @Override + public boolean checkObject(MageObject sourceObject, Ability source, Game game) { + return sourceObject.isInstant(game); + } + + @Override + public HexproofFromInstantsAbility copy() { + return instance; + } + + @Override + public String getRule() { + return "hexproof from instants"; + } + + @Override + public String getCardIconHint(Game game) { + return "hexproof from instants"; + } +} diff --git a/Mage/src/main/java/mage/abilities/keyword/HexproofFromPlaneswalkersAbility.java b/Mage/src/main/java/mage/abilities/keyword/HexproofFromPlaneswalkersAbility.java index 8c14143f3f8..8752e9a89de 100644 --- a/Mage/src/main/java/mage/abilities/keyword/HexproofFromPlaneswalkersAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/HexproofFromPlaneswalkersAbility.java @@ -7,7 +7,7 @@ import mage.game.Game; import java.io.ObjectStreamException; /** - * Hexproof from planesalkers + * Hexproof from planeswalkers * * @author weirddan455 */