diff --git a/Mage.Sets/src/mage/cards/a/AutomatedArtificer.java b/Mage.Sets/src/mage/cards/a/AutomatedArtificer.java index 1b6f49f1022..126ca879c2c 100644 --- a/Mage.Sets/src/mage/cards/a/AutomatedArtificer.java +++ b/Mage.Sets/src/mage/cards/a/AutomatedArtificer.java @@ -5,19 +5,17 @@ import mage.MageInt; import mage.MageObject; import mage.Mana; import mage.abilities.Ability; +import mage.abilities.SpellAbility; 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.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.game.Game; -import mage.game.command.Commander; -import mage.game.stack.StackObject; import java.util.UUID; @@ -75,7 +73,7 @@ class AutomatedArtificerManaCondition extends ManaCondition { @Override public boolean apply(Game game, Ability source) { - if (source == null) { + if (source == null || source.isActivated()) { return false; } switch (source.getAbilityType()) { @@ -83,15 +81,10 @@ class AutomatedArtificerManaCondition extends ManaCondition { case ACTIVATED: return true; case SPELL: - MageObject object = source.getSourceObject(game); - if (!(object instanceof StackObject) && !game.inCheckPlayableState()) { - return false; + if (source instanceof SpellAbility) { + MageObject object = game.getObject(source); + return object != null && object.isArtifact(game); } - if (object instanceof Commander) { - Card card = ((Commander) object).getSourceObject(); - return card != null && card.isArtifact(game); - } - return object.isArtifact(game); } return false; } diff --git a/Mage.Sets/src/mage/cards/c/CrypticTrilobite.java b/Mage.Sets/src/mage/cards/c/CrypticTrilobite.java index 62c0a49475b..fd7eb29d5d9 100644 --- a/Mage.Sets/src/mage/cards/c/CrypticTrilobite.java +++ b/Mage.Sets/src/mage/cards/c/CrypticTrilobite.java @@ -94,7 +94,7 @@ class CrypticTrilobiteManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source != null) { + if (source != null && !source.isActivated()) { // ex: SimpleManaAbility is an ACTIVATED ability, but it is categorized as a MANA ability return source.getAbilityType() == AbilityType.MANA || source.getAbilityType() == AbilityType.ACTIVATED; diff --git a/Mage.Sets/src/mage/cards/c/CultivatorDrone.java b/Mage.Sets/src/mage/cards/c/CultivatorDrone.java index 9ad8d2038f5..944c7541205 100644 --- a/Mage.Sets/src/mage/cards/c/CultivatorDrone.java +++ b/Mage.Sets/src/mage/cards/c/CultivatorDrone.java @@ -79,13 +79,13 @@ class CultivatorDroneManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source, UUID originalId, Cost costToPay) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); if (object != null && object.getColor(game).isColorless()) { return true; } } - if (source instanceof ActivatedAbility) { + if (source instanceof ActivatedAbility && !source.isActivated()) { Permanent object = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (object != null && object.getColor(game).isColorless()) { return true; diff --git a/Mage.Sets/src/mage/cards/d/DelightedHalfling.java b/Mage.Sets/src/mage/cards/d/DelightedHalfling.java index 78ae4ffed80..6ac0f18407a 100644 --- a/Mage.Sets/src/mage/cards/d/DelightedHalfling.java +++ b/Mage.Sets/src/mage/cards/d/DelightedHalfling.java @@ -85,7 +85,7 @@ class DelightedHalflingManaCondition extends ManaCondition { @Override public boolean apply(Game game, Ability source) { // check: ... to cast a spell - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); // check: ... that is legendary if (object != null && object.isLegendary(game)) { diff --git a/Mage.Sets/src/mage/cards/g/GreatHallOfTheCitadel.java b/Mage.Sets/src/mage/cards/g/GreatHallOfTheCitadel.java index f5222b51c05..2671a720213 100644 --- a/Mage.Sets/src/mage/cards/g/GreatHallOfTheCitadel.java +++ b/Mage.Sets/src/mage/cards/g/GreatHallOfTheCitadel.java @@ -75,7 +75,7 @@ class GreatHallOfTheCitadelManaCondition extends ManaCondition implements Condit @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); return object != null && object.isLegendary(game); } diff --git a/Mage.Sets/src/mage/cards/k/KarfellHarbinger.java b/Mage.Sets/src/mage/cards/k/KarfellHarbinger.java index 344118bc279..c3053984c53 100644 --- a/Mage.Sets/src/mage/cards/k/KarfellHarbinger.java +++ b/Mage.Sets/src/mage/cards/k/KarfellHarbinger.java @@ -74,7 +74,7 @@ class KarfellHarbingerManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); return object != null && object.isInstantOrSorcery(game); } diff --git a/Mage.Sets/src/mage/cards/k/KlauthUnrivaledAncient.java b/Mage.Sets/src/mage/cards/k/KlauthUnrivaledAncient.java index f2caa447793..3d19c5d4f8f 100644 --- a/Mage.Sets/src/mage/cards/k/KlauthUnrivaledAncient.java +++ b/Mage.Sets/src/mage/cards/k/KlauthUnrivaledAncient.java @@ -122,7 +122,7 @@ class KlauthUnrivaledAncientManaCondition extends ManaCondition implements Condi @Override public boolean apply(Game game, Ability source) { - return source instanceof SpellAbility; + return source instanceof SpellAbility && !source.isActivated(); } @Override diff --git a/Mage.Sets/src/mage/cards/m/MeetingOfTheFive.java b/Mage.Sets/src/mage/cards/m/MeetingOfTheFive.java index 6d6b605215c..5f08fc6d59b 100644 --- a/Mage.Sets/src/mage/cards/m/MeetingOfTheFive.java +++ b/Mage.Sets/src/mage/cards/m/MeetingOfTheFive.java @@ -130,7 +130,7 @@ class MeetingOfTheFiveManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (!(source instanceof SpellAbility)) { + if (!(source instanceof SpellAbility) || source.isActivated()) { return false; } MageObject object = game.getObject(source); diff --git a/Mage.Sets/src/mage/cards/n/NarsetOfTheAncientWay.java b/Mage.Sets/src/mage/cards/n/NarsetOfTheAncientWay.java index 0cfaa560054..a703ccbffd6 100644 --- a/Mage.Sets/src/mage/cards/n/NarsetOfTheAncientWay.java +++ b/Mage.Sets/src/mage/cards/n/NarsetOfTheAncientWay.java @@ -97,7 +97,7 @@ class NarsetOfTheAncientWayManaCondition extends ManaCondition implements Condit @Override public boolean apply(Game game, Ability source) { - if (!(source instanceof SpellAbility)) { + if (!(source instanceof SpellAbility) || source.isActivated()) { return false; } MageObject object = game.getObject(source); diff --git a/Mage.Sets/src/mage/cards/n/NikoDefiesDestiny.java b/Mage.Sets/src/mage/cards/n/NikoDefiesDestiny.java index 98b25572cac..b768b41a519 100644 --- a/Mage.Sets/src/mage/cards/n/NikoDefiesDestiny.java +++ b/Mage.Sets/src/mage/cards/n/NikoDefiesDestiny.java @@ -166,7 +166,7 @@ class NikoDefiesDestinyManaCondition extends ManaCondition implements Condition @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); return object != null && object.getAbilities().containsClass(ForetellAbility.class); } diff --git a/Mage.Sets/src/mage/cards/o/OmenHawker.java b/Mage.Sets/src/mage/cards/o/OmenHawker.java index 47d9f6f72ae..270fb311e1f 100644 --- a/Mage.Sets/src/mage/cards/o/OmenHawker.java +++ b/Mage.Sets/src/mage/cards/o/OmenHawker.java @@ -73,7 +73,7 @@ class OmenHawkerManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source != null) { + if (source != null && !source.isActivated()) { return source.getAbilityType() == AbilityType.MANA || source.getAbilityType() == AbilityType.ACTIVATED; } diff --git a/Mage.Sets/src/mage/cards/o/OpenTheOmenpaths.java b/Mage.Sets/src/mage/cards/o/OpenTheOmenpaths.java index f4fce2bcd96..04809d169e2 100644 --- a/Mage.Sets/src/mage/cards/o/OpenTheOmenpaths.java +++ b/Mage.Sets/src/mage/cards/o/OpenTheOmenpaths.java @@ -84,7 +84,7 @@ class OpenTheOmenpathsCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (!(source instanceof SpellAbility)) { + if (!(source instanceof SpellAbility) || source.isActivated()) { return false; } MageObject object = game.getObject(source); diff --git a/Mage.Sets/src/mage/cards/p/PlazaOfHeroes.java b/Mage.Sets/src/mage/cards/p/PlazaOfHeroes.java index 8719561a53a..3a0b0b522f3 100644 --- a/Mage.Sets/src/mage/cards/p/PlazaOfHeroes.java +++ b/Mage.Sets/src/mage/cards/p/PlazaOfHeroes.java @@ -107,7 +107,7 @@ class PlazaOfHeroesManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); if (object != null && object.isLegendary(game)) { return true; diff --git a/Mage.Sets/src/mage/cards/s/SoldeviMachinist.java b/Mage.Sets/src/mage/cards/s/SoldeviMachinist.java index a299cc0c817..65371724450 100644 --- a/Mage.Sets/src/mage/cards/s/SoldeviMachinist.java +++ b/Mage.Sets/src/mage/cards/s/SoldeviMachinist.java @@ -80,7 +80,7 @@ class ArtifactAbilityManaCondition extends ManaCondition implements Condition { return false; } MageObject object = game.getObject(source); - return object != null && object.isArtifact(game); + return object != null && object.isArtifact(game) && !source.isActivated(); } @Override diff --git a/Mage.Sets/src/mage/cards/s/SorcererClass.java b/Mage.Sets/src/mage/cards/s/SorcererClass.java index ec25ddbd97f..e46d532f5a8 100644 --- a/Mage.Sets/src/mage/cards/s/SorcererClass.java +++ b/Mage.Sets/src/mage/cards/s/SorcererClass.java @@ -115,7 +115,7 @@ class SorcererClassManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); return object != null && object.isInstantOrSorcery(game); } diff --git a/Mage.Sets/src/mage/cards/t/TazriStalwartSurvivor.java b/Mage.Sets/src/mage/cards/t/TazriStalwartSurvivor.java index d8d609690c6..5e016cadd88 100644 --- a/Mage.Sets/src/mage/cards/t/TazriStalwartSurvivor.java +++ b/Mage.Sets/src/mage/cards/t/TazriStalwartSurvivor.java @@ -132,7 +132,7 @@ class TazriStalwartSurvivorManaEffect extends ManaEffect { return false; } MageObject object = game.getObject(source); - return object != null && object.isCreature(game); + return object != null && object.isCreature(game) && !source.isActivated(); } @Override diff --git a/Mage.Sets/src/mage/cards/t/TheEnigmaJewel.java b/Mage.Sets/src/mage/cards/t/TheEnigmaJewel.java index 4e38195731e..c3a7d1a8c6f 100644 --- a/Mage.Sets/src/mage/cards/t/TheEnigmaJewel.java +++ b/Mage.Sets/src/mage/cards/t/TheEnigmaJewel.java @@ -108,7 +108,7 @@ class TheEnigmaJewelManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source != null) { + if (source != null && !source.isActivated()) { return source.getAbilityType() == AbilityType.MANA || source.getAbilityType() == AbilityType.ACTIVATED; } diff --git a/Mage.Sets/src/mage/cards/t/ThranTurbine.java b/Mage.Sets/src/mage/cards/t/ThranTurbine.java index 8f664ff7b0e..803baf06b89 100644 --- a/Mage.Sets/src/mage/cards/t/ThranTurbine.java +++ b/Mage.Sets/src/mage/cards/t/ThranTurbine.java @@ -3,6 +3,7 @@ package mage.cards.t; import mage.ConditionalMana; import mage.Mana; import mage.abilities.Ability; +import mage.abilities.SpellAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.Condition; import mage.abilities.costs.Cost; @@ -101,6 +102,6 @@ class ThranTurbineManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source, UUID originalId, Cost costToPay) { - return !(source instanceof Spell); + return !(source instanceof SpellAbility && !source.isActivated()); } } diff --git a/Mage.Sets/src/mage/cards/t/TitansNest.java b/Mage.Sets/src/mage/cards/t/TitansNest.java index d1472483bd4..b7fd9f27181 100644 --- a/Mage.Sets/src/mage/cards/t/TitansNest.java +++ b/Mage.Sets/src/mage/cards/t/TitansNest.java @@ -94,7 +94,7 @@ class TitansNestManaCondition extends ManaCondition { @Override public boolean apply(Game game, Ability source, UUID originalId, Cost costToPay) { - if (!(source instanceof SpellAbility)) { + if (!(source instanceof SpellAbility) || source.isActivated()) { return false; } MageObject object = game.getObject(source); diff --git a/Mage.Sets/src/mage/cards/u/UnblinkingObserver.java b/Mage.Sets/src/mage/cards/u/UnblinkingObserver.java index eee7999ff01..e6115ef6b9c 100644 --- a/Mage.Sets/src/mage/cards/u/UnblinkingObserver.java +++ b/Mage.Sets/src/mage/cards/u/UnblinkingObserver.java @@ -75,10 +75,10 @@ class UnblinkingObserverManaCondition extends ManaCondition implements Condition @Override public boolean apply(Game game, Ability source) { - if (source instanceof DisturbAbility) { + if (source instanceof DisturbAbility && !source.isActivated()) { return true; } - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); return object != null && object.isInstantOrSorcery(game); } diff --git a/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java b/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java index d2d5f6245a9..06e33e310c1 100644 --- a/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java +++ b/Mage.Sets/src/mage/cards/u/UntaidakeTheCloudKeeper.java @@ -76,7 +76,7 @@ class LegendaryCastManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); if (object != null && object.isLegendary(game)) { return true; diff --git a/Mage.Sets/src/mage/cards/v/VoldarenEstate.java b/Mage.Sets/src/mage/cards/v/VoldarenEstate.java index 6f42614ec8b..96c78e9276c 100644 --- a/Mage.Sets/src/mage/cards/v/VoldarenEstate.java +++ b/Mage.Sets/src/mage/cards/v/VoldarenEstate.java @@ -107,7 +107,7 @@ class VoldarenEstateManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); return object != null && object.hasSubtype(SubType.VAMPIRE, game); } diff --git a/Mage.Sets/src/mage/cards/v/VolsheTideturner.java b/Mage.Sets/src/mage/cards/v/VolsheTideturner.java index ea93447a487..0b29bad0e6b 100644 --- a/Mage.Sets/src/mage/cards/v/VolsheTideturner.java +++ b/Mage.Sets/src/mage/cards/v/VolsheTideturner.java @@ -75,12 +75,12 @@ class VolsheTideturnerCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { + if (!(source instanceof SpellAbility) && !source.isActivated()) { + return false; + } if (KickedCondition.ONCE.apply(game, source)) { return true; } - if (!(source instanceof SpellAbility)) { - return false; - } MageObject object = game.getObject(source); return object != null && object.isInstantOrSorcery(game); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/mana/conditional/ConditionalManaTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/mana/conditional/ConditionalManaTest.java index 08441b9b75a..610cd05681e 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/mana/conditional/ConditionalManaTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/mana/conditional/ConditionalManaTest.java @@ -389,6 +389,45 @@ public class ConditionalManaTest extends CardTestPlayerBase { assertManaOptions("{C}{C}{C}{C}{C}{C}{C}{R}[{XCostManaCondition}{TitansNestManaCondition}]", manaOptions); } + @Test + public void testConditionalManaSoftCounter() { + addCard(Zone.HAND, playerA, "Fallaji Excavation", 1); + addCard(Zone.HAND, playerA, "Gigantosaurus", 1); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 5); + addCard(Zone.HAND, playerB, "Mana Leak"); + addCard(Zone.BATTLEFIELD, playerB, "Island", 2); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Fallaji Excavation"); + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Gigantosaurus"); + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerB, "Mana Leak", "Gigantosaurus"); + setChoice(playerA, true); + + setStrictChooseMode(true); + setStopAt(3, PhaseStep.POSTCOMBAT_MAIN); + execute(); + assertPermanentCount(playerA, "Gigantosaurus", 1); + assertTappedCount("Powerstone Token", true, 3); + } + @Test + public void testConditionalManaCantSoftCounter() { + addCard(Zone.BATTLEFIELD, playerA, "Jaya Ballard"); + addCard(Zone.HAND, playerA, "Gigantosaurus", 1); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 5); + addCard(Zone.HAND, playerB, "Mana Leak"); + addCard(Zone.BATTLEFIELD, playerB, "Island", 2); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Add"); + waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, true); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Gigantosaurus"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Mana Leak", "Gigantosaurus"); + setChoice(playerA, true); + + setStrictChooseMode(true); + setStopAt(3, PhaseStep.POSTCOMBAT_MAIN); + execute(); + assertPermanentCount(playerA, "Gigantosaurus", 0); + } + @Test public void testConditionalManaDeduplication() { ManaOptions manaOptions = new ManaOptions(); diff --git a/Mage/src/main/java/mage/abilities/mana/builder/common/InstantOrSorcerySpellManaBuilder.java b/Mage/src/main/java/mage/abilities/mana/builder/common/InstantOrSorcerySpellManaBuilder.java index 5f52b90ef6a..56c46d75012 100644 --- a/Mage/src/main/java/mage/abilities/mana/builder/common/InstantOrSorcerySpellManaBuilder.java +++ b/Mage/src/main/java/mage/abilities/mana/builder/common/InstantOrSorcerySpellManaBuilder.java @@ -42,7 +42,7 @@ class InstantOrSorceryCastManaCondition extends ManaCondition implements Conditi @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); return object != null && object.isInstantOrSorcery(game); } diff --git a/Mage/src/main/java/mage/abilities/mana/builder/common/SimpleActivatedAbilityManaBuilder.java b/Mage/src/main/java/mage/abilities/mana/builder/common/SimpleActivatedAbilityManaBuilder.java index 86e7b3bbe48..abcb0b48057 100644 --- a/Mage/src/main/java/mage/abilities/mana/builder/common/SimpleActivatedAbilityManaBuilder.java +++ b/Mage/src/main/java/mage/abilities/mana/builder/common/SimpleActivatedAbilityManaBuilder.java @@ -26,7 +26,7 @@ public class SimpleActivatedAbilityManaBuilder extends ConditionalManaBuilder { @Override public String getRule() { - return "Spend this mana only to activate simple abilities"; + return "Spend this mana only to activate or pay for simple abilities"; } } @@ -34,7 +34,7 @@ class SimpleActivatedAbilityConditionalMana extends ConditionalMana { public SimpleActivatedAbilityConditionalMana(Mana mana) { super(mana); - staticText = "Spend this mana only to activate simple abilities"; + staticText = "Spend this mana only to activate or pay for simple abilities"; addCondition(new SimpleActivatedAbilityManaCondition()); } } diff --git a/Mage/src/main/java/mage/abilities/mana/conditional/ConditionalSpellManaBuilder.java b/Mage/src/main/java/mage/abilities/mana/conditional/ConditionalSpellManaBuilder.java index e9dfbfbe296..c129c29fa49 100644 --- a/Mage/src/main/java/mage/abilities/mana/conditional/ConditionalSpellManaBuilder.java +++ b/Mage/src/main/java/mage/abilities/mana/conditional/ConditionalSpellManaBuilder.java @@ -74,7 +74,7 @@ class SpellCastManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); if ((object instanceof StackObject)) { return filter.match((StackObject) object, source.getControllerId(), source, game); diff --git a/Mage/src/main/java/mage/abilities/mana/conditional/CreatureCastManaCondition.java b/Mage/src/main/java/mage/abilities/mana/conditional/CreatureCastManaCondition.java index 76a1881a3bb..20bdd15d19f 100644 --- a/Mage/src/main/java/mage/abilities/mana/conditional/CreatureCastManaCondition.java +++ b/Mage/src/main/java/mage/abilities/mana/conditional/CreatureCastManaCondition.java @@ -16,11 +16,9 @@ public class CreatureCastManaCondition extends ManaCondition implements Conditio @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); - if (object != null && object.isCreature(game)) { - return true; - } + return object != null && object.isCreature(game); } return false; } diff --git a/Mage/src/main/java/mage/abilities/mana/conditional/PlaneswalkerCastManaCondition.java b/Mage/src/main/java/mage/abilities/mana/conditional/PlaneswalkerCastManaCondition.java index c826ff8f0e5..009ea5cb145 100644 --- a/Mage/src/main/java/mage/abilities/mana/conditional/PlaneswalkerCastManaCondition.java +++ b/Mage/src/main/java/mage/abilities/mana/conditional/PlaneswalkerCastManaCondition.java @@ -17,11 +17,9 @@ public class PlaneswalkerCastManaCondition extends ManaCondition implements Cond @Override public boolean apply(Game game, Ability source) { - if (source instanceof SpellAbility) { + if (source instanceof SpellAbility && !source.isActivated()) { MageObject object = game.getObject(source); - if (object != null && object.isPlaneswalker(game)) { - return true; - } + return object != null && object.isPlaneswalker(game); } return false; } diff --git a/Mage/src/main/java/mage/game/permanent/token/PowerstoneToken.java b/Mage/src/main/java/mage/game/permanent/token/PowerstoneToken.java index dd3b82bf0fe..fdc273a369f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/PowerstoneToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/PowerstoneToken.java @@ -73,14 +73,11 @@ class PowerstoneTokenManaCondition extends ManaCondition implements Condition { @Override public boolean apply(Game game, Ability source) { - if (!(source instanceof SpellAbility)) { + if (!(source instanceof SpellAbility) || source.isActivated()) { return true; } MageObject object = game.getObject(source); - if (object != null && object.isArtifact(game)) { - return true; - } - return false; + return object != null && object.isArtifact(game); } @Override