From 04fcc80f06084490594961b5633478019650ba7a Mon Sep 17 00:00:00 2001 From: Michael Simons Date: Sun, 2 Sep 2018 20:40:39 -0400 Subject: [PATCH 1/2] Update VodalianArcanist.java - Updated to use common InstantOrSorcerySpellManaBuilder as used by Curious Homunculus Error reported in #5273 --- .../src/mage/cards/v/VodalianArcanist.java | 78 +------------------ 1 file changed, 3 insertions(+), 75 deletions(-) diff --git a/Mage.Sets/src/mage/cards/v/VodalianArcanist.java b/Mage.Sets/src/mage/cards/v/VodalianArcanist.java index 4cecc4cc4d7..d3b5c0e9511 100644 --- a/Mage.Sets/src/mage/cards/v/VodalianArcanist.java +++ b/Mage.Sets/src/mage/cards/v/VodalianArcanist.java @@ -2,26 +2,12 @@ package mage.cards.v; import java.util.UUID; -import mage.ConditionalMana; import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.SpellAbility; -import mage.abilities.condition.Condition; -import mage.abilities.costs.Cost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.mana.ConditionalColorlessManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -import mage.abilities.mana.conditional.ManaCondition; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.common.FilterInstantOrSorceryCard; -import mage.game.Game; -import mage.players.Player; - /** * * @author TheElk801 @@ -36,8 +22,9 @@ public final class VodalianArcanist extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(3); - // {t}: Add {C}. Spend this mana only to cast an instant or sorcery spell. - this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 1, new InstantOrSorcerySpellManaBuilder())); + // {T}: Add {C}. Spend this mana only to cast an instant or sorcery spell. + this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 1, + new mage.abilities.mana.builder.common.InstantOrSorcerySpellManaBuilder())); } public VodalianArcanist(final VodalianArcanist card) { @@ -49,62 +36,3 @@ public final class VodalianArcanist extends CardImpl { return new VodalianArcanist(this); } } - -class InstantOrSorcerySpellManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - return new InstantOrSorceryCastConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to cast an instant or sorcery spell"; - } -} - -class InstantOrSorceryCastConditionalMana extends ConditionalMana { - - public InstantOrSorceryCastConditionalMana(Mana mana) { - super(mana); - staticText = "Spend this mana only to cast an instant or sorcery spell"; - addCondition(new InstantOrSorceryCastManaCondition()); - } -} - -class InstantOrSorceryCastManaCondition extends ManaCondition implements Condition { - - @Override - public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { - MageObject object = game.getObject(source.getSourceId()); - if (object != null && (object.isInstant() || object.isSorcery())) { - return true; - } - } - return false; - } - - @Override - public boolean apply(Game game, Ability source, UUID originalId, Cost costsToPay) { - return apply(game, source); - } -} - -class InstantOrSorceryCardsInControllerGraveCondition implements Condition { - - private int value; - - public InstantOrSorceryCardsInControllerGraveCondition(int value) { - this.value = value; - } - - @Override - public boolean apply(Game game, Ability source) { - Player p = game.getPlayer(source.getControllerId()); - if (p != null && p.getGraveyard().count(new FilterInstantOrSorceryCard(), game) >= value) { - return true; - } - return false; - } -} From 27c3a3d41810af1ae4abfc06afbf3077d20532cf Mon Sep 17 00:00:00 2001 From: Michael Simons Date: Sun, 2 Sep 2018 20:49:33 -0400 Subject: [PATCH 2/2] Update VodalianArcanist.java --- Mage.Sets/src/mage/cards/v/VodalianArcanist.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Mage.Sets/src/mage/cards/v/VodalianArcanist.java b/Mage.Sets/src/mage/cards/v/VodalianArcanist.java index d3b5c0e9511..8d1ebacba36 100644 --- a/Mage.Sets/src/mage/cards/v/VodalianArcanist.java +++ b/Mage.Sets/src/mage/cards/v/VodalianArcanist.java @@ -5,6 +5,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.mana.ConditionalColorlessManaAbility; +import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType;