From 6523b14aaa0480eef8cd99e910492cd967adbc2c Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 17:02:39 +0000 Subject: [PATCH] - Cleanup Spell_Permanent.canPlay() --- src/forge/Spell_Permanent.java | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/src/forge/Spell_Permanent.java b/src/forge/Spell_Permanent.java index 5d42094a7ac..66950bd48c3 100644 --- a/src/forge/Spell_Permanent.java +++ b/src/forge/Spell_Permanent.java @@ -143,30 +143,22 @@ public class Spell_Permanent extends Spell { @Override public boolean canPlay() { - if(AllZone.Stack.isSplitSecondOnStack()) return false; + Card source = getSourceCard(); + if(AllZone.Stack.isSplitSecondOnStack() || source.isUnCastable()) return false; - Card perm = getSourceCard(); + Player turn = AllZone.Phase.getPlayerTurn(); - - if(perm.getName().equals("Serra Avenger")) { - if (turn.equals(perm.getController()) && turn.getTurn() <= 3) + + if(source.getName().equals("Serra Avenger")) { + if (turn.equals(source.getController()) && turn.getTurn() <= 3) return false; } - CardList listShimmerMyr = new CardList(AllZone.getZone(Constant.Zone.Battlefield, perm.getController()).getCards()); - listShimmerMyr = listShimmerMyr.filter(new CardListFilter() { - - public boolean addCard(Card c) { - return c.getName().equals("Shimmer Myr"); - } - - }); + CardList shimmerMyrs = AllZoneUtil.getPlayerCardsInPlay(source.getController(), "Shimmer Myr"); + boolean shimmering = source.isArtifact() && shimmerMyrs.size() > 0; - return super.canPlay() - || (getSourceCard().getKeyword().contains("Flash") && !AllZone.GameAction.isCardInPlay(getSourceCard()) - && !getSourceCard().isUnCastable()) - || ((perm.getType().contains("Artifact") && listShimmerMyr.size() != 0) && !AllZone.GameAction.isCardInPlay(getSourceCard()) - && !getSourceCard().isUnCastable()); + // Flash handled by super.canPlay + return super.canPlay() || shimmering; } @Override