From fd7479eecfb6c8fec4c597870d02b47aaf494a74 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sun, 23 Oct 2022 10:57:07 -0400 Subject: [PATCH] [40K] Implemented Illuminor Szeras --- .../src/mage/cards/i/IlluminorSzeras.java | 56 +++++++++++++++++++ Mage.Sets/src/mage/sets/Warhammer40000.java | 1 + 2 files changed, 57 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/i/IlluminorSzeras.java diff --git a/Mage.Sets/src/mage/cards/i/IlluminorSzeras.java b/Mage.Sets/src/mage/cards/i/IlluminorSzeras.java new file mode 100644 index 00000000000..c5e3c12179a --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/IlluminorSzeras.java @@ -0,0 +1,56 @@ +package mage.cards.i; + +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.HighestCMCOfPermanentValue; +import mage.abilities.dynamicvalue.common.SacrificeCostConvertedMana; +import mage.abilities.mana.DynamicManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class IlluminorSzeras extends CardImpl { + + private static final DynamicValue xValue = new SacrificeCostConvertedMana("creature"); + private static final DynamicValue netValue = new HighestCMCOfPermanentValue( + StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE, true + ); + + public IlluminorSzeras(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}{B}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.NECRON); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Secrets of the Soul -- {T}, Sacrifice another creature: Add an amount of {B} equal to the sacrificed creature's mana value. + Ability ability = new DynamicManaAbility( + Mana.BlackMana(1), xValue, new TapSourceCost(), "add an amount of {B} " + + "equal to the sacrificed creature's mana value", false, netValue + ); + ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)); + this.addAbility(ability.withFlavorWord("Secrets of the Soul")); + } + + private IlluminorSzeras(final IlluminorSzeras card) { + super(card); + } + + @Override + public IlluminorSzeras copy() { + return new IlluminorSzeras(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Warhammer40000.java b/Mage.Sets/src/mage/sets/Warhammer40000.java index 03b4f546ccd..41ba2e04061 100644 --- a/Mage.Sets/src/mage/sets/Warhammer40000.java +++ b/Mage.Sets/src/mage/sets/Warhammer40000.java @@ -142,6 +142,7 @@ public final class Warhammer40000 extends ExpansionSet { cards.add(new SetCardInfo("Hour of Reckoning", 187, Rarity.RARE, mage.cards.h.HourOfReckoning.class)); cards.add(new SetCardInfo("Hull Breach", 224, Rarity.UNCOMMON, mage.cards.h.HullBreach.class)); cards.add(new SetCardInfo("Icon of Ancestry", 242, Rarity.RARE, mage.cards.i.IconOfAncestry.class)); + cards.add(new SetCardInfo("Illuminor Szeras", 37, Rarity.RARE, mage.cards.i.IlluminorSzeras.class)); cards.add(new SetCardInfo("Imotekh the Stormlord", 5, Rarity.MYTHIC, mage.cards.i.ImotekhTheStormlord.class)); cards.add(new SetCardInfo("Inquisitor Greyfax", 3, Rarity.MYTHIC, mage.cards.i.InquisitorGreyfax.class)); cards.add(new SetCardInfo("Inquisitorial Rosette", 159, Rarity.RARE, mage.cards.i.InquisitorialRosette.class));