diff --git a/Mage.Sets/src/mage/cards/c/ChargeOfTheForeverBeast.java b/Mage.Sets/src/mage/cards/c/ChargeOfTheForeverBeast.java index 2ef93a847fe..6e878e63de3 100644 --- a/Mage.Sets/src/mage/cards/c/ChargeOfTheForeverBeast.java +++ b/Mage.Sets/src/mage/cards/c/ChargeOfTheForeverBeast.java @@ -26,7 +26,7 @@ public final class ChargeOfTheForeverBeast extends CardImpl { // As an additional cost to cast this spell, reveal a creature card from your hand. this.getSpellAbility().addCost(new RevealTargetFromHandCost( - new TargetCardInHand(StaticFilters.FILTER_CARD_CREATURE_A) + new TargetCardInHand(StaticFilters.FILTER_CARD_CREATURE_YOUR_HAND) )); // Charge of the Forever-Beast deals damage to target creature or planeswalker equal to the revealed card's power. @@ -64,7 +64,7 @@ class ChargeOfTheForeverBeastEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Permanent permanent = game.getPermanent(source.getFirstTarget()); RevealTargetFromHandCost cost = (RevealTargetFromHandCost) source.getCosts().get(0); - if (permanent == null && cost == null) { + if (permanent == null || cost == null) { return false; } Card card = cost.getRevealedCards().get(0); diff --git a/Mage.Sets/src/mage/cards/c/CrystallineGiant.java b/Mage.Sets/src/mage/cards/c/CrystallineGiant.java index 47bd468750e..369d9b25c9d 100644 --- a/Mage.Sets/src/mage/cards/c/CrystallineGiant.java +++ b/Mage.Sets/src/mage/cards/c/CrystallineGiant.java @@ -92,8 +92,8 @@ class CrystallineGiantEffect extends OneShotEffect { List counterTypes = new ArrayList(); counterTypes.addAll(counterTypeSet); counterTypes.removeIf(counters::containsKey); - if (counterTypes.size() == 0) { - return false; + if (counterTypes.isEmpty()) { + return true; } return permanent.addCounters(counterTypes.get( RandomUtil.nextInt(counterTypes.size()) diff --git a/Mage.Sets/src/mage/cards/c/CrystallineResonance.java b/Mage.Sets/src/mage/cards/c/CrystallineResonance.java index b6e70121927..a9f78614e68 100644 --- a/Mage.Sets/src/mage/cards/c/CrystallineResonance.java +++ b/Mage.Sets/src/mage/cards/c/CrystallineResonance.java @@ -33,7 +33,7 @@ public final class CrystallineResonance extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); // Whenever you cycle a card, you may have Crystalline Resonance become a copy of another target permanent until your next turn, except it has this ability. - this.addAbility(this.createAbility()); + this.addAbility(CrystallineResonance.createAbility()); } private CrystallineResonance(final CrystallineResonance card) { diff --git a/Mage.Sets/src/mage/cards/d/DarkBargain.java b/Mage.Sets/src/mage/cards/d/DarkBargain.java index 769842cc372..f6fee752e79 100644 --- a/Mage.Sets/src/mage/cards/d/DarkBargain.java +++ b/Mage.Sets/src/mage/cards/d/DarkBargain.java @@ -44,7 +44,7 @@ class DarkBargainEffect extends OneShotEffect { public DarkBargainEffect() { super(Outcome.Benefit); - this.staticText = "Look at the top three cards of your library. Put two of them into your hand and the rest into your graveyard"; + this.staticText = "Look at the top three cards of your library. Put two of them into your hand and the other into your graveyard"; } public DarkBargainEffect(final DarkBargainEffect effect) { diff --git a/Mage.Sets/src/mage/cards/l/LavabrinkVenturer.java b/Mage.Sets/src/mage/cards/l/LavabrinkVenturer.java index 6e300845383..ef18a42db35 100644 --- a/Mage.Sets/src/mage/cards/l/LavabrinkVenturer.java +++ b/Mage.Sets/src/mage/cards/l/LavabrinkVenturer.java @@ -79,7 +79,6 @@ class LavabrinkVenturerEffect extends GainAbilitySourceEffect { if (choosenMode == null) { return false; } - Ability ability; switch (choosenMode) { case "Odd": this.ability = new ProtectionAbility(oddFilter); diff --git a/Mage.Sets/src/mage/cards/m/MythosOfSnapdax.java b/Mage.Sets/src/mage/cards/m/MythosOfSnapdax.java index 797e9b0d961..d8dd2294d6f 100644 --- a/Mage.Sets/src/mage/cards/m/MythosOfSnapdax.java +++ b/Mage.Sets/src/mage/cards/m/MythosOfSnapdax.java @@ -40,6 +40,7 @@ public class MythosOfSnapdax extends CardImpl { super(card); } + @Override public MythosOfSnapdax copy() { return new MythosOfSnapdax(this); } @@ -113,10 +114,8 @@ class MythosOfSnapdaxEffect extends OneShotEffect { } } - for (Iterator iterator = game.getBattlefield().getActivePermanents( - StaticFilters.FILTER_PERMANENT_NON_LAND, source.getControllerId(), game - ).iterator(); iterator.hasNext(); ) { - Permanent permanent = iterator.next(); + for (Permanent permanent : game.getBattlefield().getActivePermanents( + StaticFilters.FILTER_PERMANENT_NON_LAND, source.getControllerId(), game)) { if (permanent == null || toKeep.contains(permanent.getId())) { continue; } diff --git a/Mage.Sets/src/mage/cards/t/TitansNest.java b/Mage.Sets/src/mage/cards/t/TitansNest.java index 4de69fb4304..f805e124d3e 100644 --- a/Mage.Sets/src/mage/cards/t/TitansNest.java +++ b/Mage.Sets/src/mage/cards/t/TitansNest.java @@ -89,7 +89,10 @@ class TitansNestEffect extends OneShotEffect { class TitansNestManaAbility extends ActivatedManaAbilityImpl { TitansNestManaAbility() { - super(Zone.BATTLEFIELD, (BasicManaEffect) new BasicManaEffect(new TitansNestConditionalMana()).setText("Add {C}. Spend this mana only to cast a colored spell without {X} in its mana cost."), new ExileFromGraveCost(new TargetCardInYourGraveyard())); + super(Zone.BATTLEFIELD, (BasicManaEffect) new BasicManaEffect( + new TitansNestConditionalMana()) + .setText("Add {C}. Spend this mana only to cast a colored spell without {X} in its mana cost."), + new ExileFromGraveCost(new TargetCardInYourGraveyard())); this.netMana.add(Mana.ColorlessMana(1)); } diff --git a/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java b/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java index dd70b3866b6..e83cb0045a3 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java @@ -36,7 +36,9 @@ public class ExileFromGraveCost extends CostImpl { + CardUtil.numberToText(target.getMaxNumberOfTargets())) + ' ' + target.getTargetName(); } else { - this.text = "Exile " + target.getTargetName(); + this.text = "Exile " + + (target.getTargetName().startsWith("card ") ? "a ":"") + + target.getTargetName(); } if (!this.text.endsWith(" from your graveyard")) { this.text = this.text + " from your graveyard"; diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index 5c6c021cf4d..2e104750944 100644 --- a/Mage/src/main/java/mage/filter/StaticFilters.java +++ b/Mage/src/main/java/mage/filter/StaticFilters.java @@ -89,6 +89,12 @@ public final class StaticFilters { FILTER_CARD_CREATURE_A.setLockedFilter(true); } + public static final FilterCreatureCard FILTER_CARD_CREATURE_YOUR_HAND = new FilterCreatureCard("a creature card from your hand"); + + static { + FILTER_CARD_CREATURE_YOUR_HAND.setLockedFilter(true); + } + public static final FilterCreatureCard FILTER_CARD_CREATURE_YOUR_GRAVEYARD = new FilterCreatureCard("creature card from your graveyard"); static {