diff --git a/Mage.Sets/src/mage/cards/j/JeweledLotus.java b/Mage.Sets/src/mage/cards/j/JeweledLotus.java new file mode 100644 index 00000000000..435512972a3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/j/JeweledLotus.java @@ -0,0 +1,48 @@ +package mage.cards.j; + +import mage.abilities.Ability; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.ConditionalAnyColorManaAbility; +import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.filter.FilterSpell; +import mage.filter.predicate.permanent.CommanderPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class JeweledLotus extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("your commander"); + + static { + filter.add(CommanderPredicate.instance); + filter.add(TargetController.YOU.getOwnerPredicate()); + } + + public JeweledLotus(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{0}"); + + // {T}, Sacrifice Jeweled Lotus: Add three mana of any one color. Spend this mana only to cast your commander. + Ability ability = new ConditionalAnyColorManaAbility( + new TapSourceCost(), 3, new ConditionalSpellManaBuilder(filter), true + ); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + private JeweledLotus(final JeweledLotus card) { + super(card); + } + + @Override + public JeweledLotus copy() { + return new JeweledLotus(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderLegends.java b/Mage.Sets/src/mage/sets/CommanderLegends.java index f86f21b3039..ca549b7d4ee 100644 --- a/Mage.Sets/src/mage/sets/CommanderLegends.java +++ b/Mage.Sets/src/mage/sets/CommanderLegends.java @@ -60,6 +60,7 @@ public final class CommanderLegends extends ExpansionSet { cards.add(new SetCardInfo("Immaculate Magistrate", 234, Rarity.RARE, mage.cards.i.ImmaculateMagistrate.class)); cards.add(new SetCardInfo("Imperious Perfect", 235, Rarity.UNCOMMON, mage.cards.i.ImperiousPerfect.class)); cards.add(new SetCardInfo("Interpret the Signs", 75, Rarity.UNCOMMON, mage.cards.i.InterpretTheSigns.class)); + cards.add(new SetCardInfo("Jeweled Lotus", 319, Rarity.MYTHIC, mage.cards.j.JeweledLotus.class)); cards.add(new SetCardInfo("Kamahl, Heart of Krosa", 237, Rarity.MYTHIC, mage.cards.k.KamahlHeartOfKrosa.class)); cards.add(new SetCardInfo("Keeper of the Accord", 27, Rarity.RARE, mage.cards.k.KeeperOfTheAccord.class)); cards.add(new SetCardInfo("Kitesail Corsair", 76, Rarity.COMMON, mage.cards.k.KitesailCorsair.class)); diff --git a/Mage/src/main/java/mage/filter/predicate/permanent/CommanderPredicate.java b/Mage/src/main/java/mage/filter/predicate/permanent/CommanderPredicate.java index a833490e3b0..7ba0e16ec3a 100644 --- a/Mage/src/main/java/mage/filter/predicate/permanent/CommanderPredicate.java +++ b/Mage/src/main/java/mage/filter/predicate/permanent/CommanderPredicate.java @@ -1,21 +1,20 @@ package mage.filter.predicate.permanent; +import mage.MageObject; import mage.filter.predicate.Predicate; import mage.game.Game; -import mage.game.permanent.Permanent; import mage.players.Player; /** * @author LevelX2 */ -public enum CommanderPredicate implements Predicate { +public enum CommanderPredicate implements Predicate { instance; @Override - public boolean apply(Permanent input, Game game) { - Player owner = game.getPlayer(input.getOwnerId()); - return owner != null - && game.getCommandersIds(owner).contains(input.getId()); + public boolean apply(MageObject input, Game game) { + Player owner = game.getPlayer(game.getOwnerId(input.getId())); + return owner != null && game.getCommandersIds(owner).contains(input.getId()); } @Override diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 472f24c4d10..b4ea583cec4 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -39392,6 +39392,7 @@ Arcane Signet|Commander Legends|297|U|{2}|Artifact|||{T}: Add one mana of any co Bladegriff Prototype|Commander Legends|300|R|{5}|Artifact Creature - Griffin|3|2|Flying$Whenever Bladegriff Prototype deals combat damage to a player, destroy target nonland permanent of that player's choice that one of your opponents controls.| Charcoal Diamond|Commander Legends|303|C|{2}|Artifact|||Charcoal Diamond enters the battlefield tapped.${T}: Add {B}.| Commander's Sphere|Commander Legends|306|C|{3}|Artifact|||{T}: Add one mana of any color in your commander's color identity.$Sacrifice Commander's Sphere: Draw a card.| +Jeweled Lotus|Commander Legends|319|M|{0}|Artifact|||{T}, Sacrifice Jeweled Lotus: Add three mana of any one color. Spend this mana only to cast your commander.| Maelstrom Colossus|Commander Legends|322|C|{8}|Artifact Creature - Golem|7|7|Cascade| Marble Diamond|Commander Legends|323|C|{2}|Artifact|||Marble Diamond enters the battlefield tapped.${T}: Add {W}.| Mask of Memory|Commander Legends|324|U|{2}|Artifact - Equipment|||Whenever equipped creature deals combat damage to a player, you may draw two cards. If you do, discard a card.$Equip {1}|