[CMR] Implemented Jeweled Lotus

This commit is contained in:
Evan Kranzler 2020-10-29 19:48:39 -04:00
parent 1148a2a810
commit 20cc5571e4
4 changed files with 55 additions and 6 deletions

View file

@ -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);
}
}

View file

@ -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("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("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("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("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("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)); cards.add(new SetCardInfo("Kitesail Corsair", 76, Rarity.COMMON, mage.cards.k.KitesailCorsair.class));

View file

@ -1,21 +1,20 @@
package mage.filter.predicate.permanent; package mage.filter.predicate.permanent;
import mage.MageObject;
import mage.filter.predicate.Predicate; import mage.filter.predicate.Predicate;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
/** /**
* @author LevelX2 * @author LevelX2
*/ */
public enum CommanderPredicate implements Predicate<Permanent> { public enum CommanderPredicate implements Predicate<MageObject> {
instance; instance;
@Override @Override
public boolean apply(Permanent input, Game game) { public boolean apply(MageObject input, Game game) {
Player owner = game.getPlayer(input.getOwnerId()); Player owner = game.getPlayer(game.getOwnerId(input.getId()));
return owner != null return owner != null && game.getCommandersIds(owner).contains(input.getId());
&& game.getCommandersIds(owner).contains(input.getId());
} }
@Override @Override

View file

@ -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.| 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}.| 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.| 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| 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}.| 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}| 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}|