diff --git a/src/main/java/forge/AllZoneUtil.java b/src/main/java/forge/AllZoneUtil.java index 27c06030518..e0b069570b2 100644 --- a/src/main/java/forge/AllZoneUtil.java +++ b/src/main/java/forge/AllZoneUtil.java @@ -54,8 +54,8 @@ public abstract class AllZoneUtil { cards.addAll(p.getZone(zone).getCards()); } } - } - + } + public static CardList getCardsIn(final Iterable zones) { final CardList cards = new CardList(); for (final ZoneType z : zones) { @@ -71,7 +71,7 @@ public abstract class AllZoneUtil { } return cards; } - + /** * gets a list of all cards owned by both players that have are currently in * the given zone. diff --git a/src/main/java/forge/card/CardColor.java b/src/main/java/forge/card/CardColor.java index ba04c90d2e4..d23c733bc5c 100644 --- a/src/main/java/forge/card/CardColor.java +++ b/src/main/java/forge/card/CardColor.java @@ -49,30 +49,35 @@ public final class CardColor implements Comparable { public CardColor(final CardManaCost mana) { this(mana.getColorProfile()); } - + private CardColor(final byte mask) { this.myColor = mask; this.orderWeight = this.getOrderWeight(); - + } public static CardColor fromMask(int mask) { - return new CardColor((byte)mask); + return new CardColor((byte) mask); } - + public static CardColor fromNames(String... colors) { byte mask = 0; - for(String s : colors) { - if ( s.equalsIgnoreCase(Constant.Color.WHITE) || s.equalsIgnoreCase("w")) + for (String s : colors) { + if (s.equalsIgnoreCase(Constant.Color.WHITE) || s.equalsIgnoreCase("w")) { mask |= WHITE; - if ( s.equalsIgnoreCase(Constant.Color.BLUE) || s.equalsIgnoreCase("u")) + } + if (s.equalsIgnoreCase(Constant.Color.BLUE) || s.equalsIgnoreCase("u")) { mask |= BLUE; - if ( s.equalsIgnoreCase(Constant.Color.BLACK) || s.equalsIgnoreCase("b")) + } + if (s.equalsIgnoreCase(Constant.Color.BLACK) || s.equalsIgnoreCase("b")) { mask |= BLACK; - if ( s.equalsIgnoreCase(Constant.Color.RED) || s.equalsIgnoreCase("r")) + } + if (s.equalsIgnoreCase(Constant.Color.RED) || s.equalsIgnoreCase("r")) { mask |= RED; - if ( s.equalsIgnoreCase(Constant.Color.GREEN) || s.equalsIgnoreCase("g")) + } + if (s.equalsIgnoreCase(Constant.Color.GREEN) || s.equalsIgnoreCase("g")) { mask |= GREEN; + } } return fromMask(mask); } @@ -107,13 +112,12 @@ public final class CardColor implements Comparable { return (this.myColor & colormask) == colormask; } - /** this has no other colors except defined by operand */ + /** this has no other colors except defined by operand. */ public boolean hasNoColorsExcept(final int colormask) { return (this.myColor & ~colormask) == 0; } - - - /** Operand has no other colors except defined by this */ + + /** Operand has no other colors except defined by this. */ public boolean containsAllColorsFrom(int colorProfile) { return (~this.myColor & colorProfile) == 0; } @@ -284,10 +288,10 @@ public final class CardColor implements Comparable { public CardColor inverse() { byte mask = this.myColor; - mask ^= ( WHITE | BLUE | BLACK | GREEN | RED ); + mask ^= (WHITE | BLUE | BLACK | GREEN | RED); return fromMask(mask); } - + /* * (non-Javadoc) * @@ -332,6 +336,6 @@ public final class CardColor implements Comparable { * @return true, if successful */ public boolean sharesColorWith(CardColor ccOther) { - return ( this.myColor & ccOther.myColor ) != 0; + return (this.myColor & ccOther.myColor) != 0; } } diff --git a/src/main/java/forge/card/CardManaCost.java b/src/main/java/forge/card/CardManaCost.java index 28a02186997..54e4883f20a 100644 --- a/src/main/java/forge/card/CardManaCost.java +++ b/src/main/java/forge/card/CardManaCost.java @@ -215,9 +215,10 @@ public final class CardManaCost implements Comparable { * @return */ public boolean hasPhyrexian() { - for(CardManaCostShard shard : shards) { - if ( shard.isPhyrexian() ) + for (CardManaCostShard shard : shards) { + if (shard.isPhyrexian()) { return true; + } } return false; } @@ -228,9 +229,10 @@ public final class CardManaCost implements Comparable { */ public int countX() { int iX = 0; - for(CardManaCostShard shard : shards) { - if ( shard == CardManaCostShard.X ) + for (CardManaCostShard shard : shards) { + if (shard == CardManaCostShard.X) { iX++; + } } return iX; } diff --git a/src/main/java/forge/card/CardRules.java b/src/main/java/forge/card/CardRules.java index 1b7654fcdfd..a61e99ff986 100644 --- a/src/main/java/forge/card/CardRules.java +++ b/src/main/java/forge/card/CardRules.java @@ -809,11 +809,11 @@ public final class CardRules { PredicatesOp.NOR, Presets.IS_LAND); @SuppressWarnings("unchecked") - public static final Predicate isNonCreatureSpellForGenerator = Predicate.or( Arrays.asList( - Presets.IS_SORCERY, Presets.IS_INSTANT, Presets.IS_PLANESWALKER, Presets.IS_ENCHANTMENT, - Predicate.compose(Presets.IS_ARTIFACT, PredicatesOp.GT, Presets.IS_CREATURE )) + public static final Predicate isNonCreatureSpellForGenerator = Predicate.or(Arrays.asList( + Presets.IS_SORCERY, Presets.IS_INSTANT, Presets.IS_PLANESWALKER, Presets.IS_ENCHANTMENT, + Predicate.compose(Presets.IS_ARTIFACT, PredicatesOp.GT, Presets.IS_CREATURE)) ); - + /** The Constant isWhite. */ public static final Predicate IS_WHITE = Predicates.isColor(CardColor.WHITE); diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryCharm.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryCharm.java index 4174c16a767..93ae90e6198 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryCharm.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryCharm.java @@ -165,7 +165,7 @@ public final class AbilityFactoryCharm { timingRight = true; break; } - if ((timingRight || i < num-1) && sub.doTrigger(false)) { + if ((timingRight || i < num - 1) && sub.doTrigger(false)) { chosen = (AbilitySub) sub; choices.remove(sub); break; diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryToken.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryToken.java index 48df612efa7..44b6b7009a6 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryToken.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryToken.java @@ -298,7 +298,7 @@ public class AbilityFactoryToken extends AbilityFactory { && !mapParams.containsKey("ActivationPhases")) { return false; } - if ((Singletons.getModel().getGameState().getPhaseHandler().isPlayerTurn(AllZone.getComputerPlayer()) + if ((Singletons.getModel().getGameState().getPhaseHandler().isPlayerTurn(AllZone.getComputerPlayer()) || Singletons.getModel().getGameState().getPhaseHandler().getPhase().isBefore( PhaseType.COMBAT_DECLARE_ATTACKERS_INSTANT_ABILITY)) && !mapParams.containsKey("ActivationPhases") && !AbilityFactory.isSorcerySpeed(sa) diff --git a/src/main/java/forge/card/cardfactory/AbstractCardFactory.java b/src/main/java/forge/card/cardfactory/AbstractCardFactory.java index f03d3ea5d61..e54adf124b3 100644 --- a/src/main/java/forge/card/cardfactory/AbstractCardFactory.java +++ b/src/main/java/forge/card/cardfactory/AbstractCardFactory.java @@ -154,8 +154,8 @@ public abstract class AbstractCardFactory implements CardFactoryInterface { */ @Override public Iterator iterator() { - if ( allCardsReadOnly == null ) - { + if (allCardsReadOnly == null) { + allCardsReadOnly = Collections.unmodifiableList(getAllCards()); } return allCardsReadOnly.iterator(); @@ -1496,7 +1496,7 @@ public abstract class AbstractCardFactory implements CardFactoryInterface { sb.append("If you do, choose two cards in your hand drawn this turn. For each of those cards, "); sb.append("pay 4 life or put the card on top of your library."); ability.setStackDescription(sb.toString()); - + final Trigger drawStepTrigger = forge.card.trigger.TriggerHandler.parseTrigger( "Mode$ Phase | Phase$ Draw | ValidPlayer$ You | OptionalDecider$ You | " + "TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ At the beginning of " diff --git a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java index a785b17c8bd..5a049e372f1 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java @@ -83,8 +83,7 @@ public class CardFactoryCreatures { card.clearFirstSpell(); card.addSpellAbility(spell); } - - + private static void getCard_GilderBairn(final Card card, final String cardName) { final Cost abCost = new Cost(card, "2 GU Untap", true); final Target tgt = new Target(card, "Select target permanent.", new String[] { "Permanent" }); @@ -185,7 +184,7 @@ public class CardFactoryCreatures { }; card.addComesIntoPlayCommand(intoPlay); } - + private static void getCard_MinotaurExplorer(final Card card, final String cardName) { final SpellAbility creature = new SpellPermanent(card) { private static final long serialVersionUID = -7326018877172328480L; @@ -230,12 +229,12 @@ public class CardFactoryCreatures { } }; - + card.clearFirstSpell(); card.addFirstSpellAbility(creature); - card.addComesIntoPlayCommand(intoPlay); + card.addComesIntoPlayCommand(intoPlay); } - + private static void getCard_PhylacteryLich(final Card card, final String cardName) { final Command intoPlay = new Command() { private static final long serialVersionUID = -1601957445498569156L; @@ -296,10 +295,9 @@ public class CardFactoryCreatures { .getZoneOf(this.getSourceCard()).is(ZoneType.Hand)); } }); - card.addComesIntoPlayCommand(intoPlay); + card.addComesIntoPlayCommand(intoPlay); } - - + private static void getCard_SkySwallower(final Card card, final String cardName) { final SpellAbility ability = new Ability(card, "0") { @@ -333,7 +331,7 @@ public class CardFactoryCreatures { }; card.addComesIntoPlayCommand(intoPlay); } - + private static void getCard_JhoiraOfTheGhitu(final Card card, final String cardName) { final Stack chosen = new Stack(); final SpellAbility ability = new Ability(card, "2") { @@ -382,7 +380,7 @@ public class CardFactoryCreatures { card.addSpellAbility(ability); } - + private static void getCard_VedalkenPlotter(final Card card, final String cardName) { final Card[] target = new Card[2]; final int[] index = new int[1]; @@ -616,7 +614,7 @@ public class CardFactoryCreatures { sbStack.append(card.getName()); sbStack.append(" - For each creature token you control, put a token "); sbStack.append("that's a copy of that creature onto the battlefield."); - copyTokens1.setStackDescription(sbStack.toString()); + copyTokens1.setStackDescription(sbStack.toString()); } private static void getCard_TrevaTheRenewer(final Card card, final String cardName) { @@ -653,7 +651,7 @@ public class CardFactoryCreatures { final StringBuilder sb2 = new StringBuilder(); sb2.append(card.getName()).append(" - ").append(player); sb2.append(" gains life equal to permanents of the chosen color."); - ability2.setStackDescription(sb2.toString()); + ability2.setStackDescription(sb2.toString()); } private static void getCard_SphinxJwar(final Card card, final String cardName) { @@ -846,7 +844,7 @@ public class CardFactoryCreatures { sb.append("chooses among any number of those Wolves."); ability.setDescription(sb.toString()); - card.addSpellAbility(ability); + card.addSpellAbility(ability); } private static void getCard_ApocalypseHydra(final Card card, final String cardName) { @@ -943,7 +941,7 @@ public class CardFactoryCreatures { final StringBuilder sbStack = new StringBuilder(); sbStack.append("Molten Hydra deals damage to number of +1/+1 "); sbStack.append("counters on it to target creature or player."); - ability2.setStackDescription(sbStack.toString()); + ability2.setStackDescription(sbStack.toString()); } private static void getCard_AcademyRector(final Card card, final String cardName) { @@ -1124,7 +1122,7 @@ public class CardFactoryCreatures { } // execute() }; // Command destroy - card.addDestroyCommand(destroy); + card.addDestroyCommand(destroy); } private static void getCard_KinsbaileBorderguard(final Card card, final String cardName) { @@ -1194,9 +1192,9 @@ public class CardFactoryCreatures { }; card.addComesIntoPlayCommand(intoPlay); - card.addDestroyCommand(destroy); + card.addDestroyCommand(destroy); } - + private static void getCard_MultikickerP1P1(final Card card, final String cardName) { final AbilityStatic ability = new AbilityStatic(card, "0") { @Override @@ -1220,7 +1218,7 @@ public class CardFactoryCreatures { } }; - card.addComesIntoPlayCommand(comesIntoPlay); + card.addComesIntoPlayCommand(comesIntoPlay); } private static void getCard_VampireHexmage(final Card card, final String cardName) { @@ -1279,7 +1277,7 @@ public class CardFactoryCreatures { } }; card.addSpellAbility(ability); - } + } private static void getCard_SurturedGhoul(final Card card, final String cardName) { final int[] numCreatures = new int[1]; @@ -1351,9 +1349,9 @@ public class CardFactoryCreatures { list = list.filter(CardListFilter.CREATURES); return 0 < list.size(); } - }); - } - + }); + } + private static void getCard_NamelessRace(final Card card, final String cardName) { /* * As Nameless Race enters the battlefield, pay any amount of life. @@ -1417,8 +1415,8 @@ public class CardFactoryCreatures { sb.append(cardName).append(" - pay any amount of life."); ability.setStackDescription(sb.toString()); - card.addComesIntoPlayCommand(intoPlay); - } + card.addComesIntoPlayCommand(intoPlay); + } private static void getCard_PhyrexianScuta(final Card card, final String cardName) { final Cost abCost = new Cost(card, "3 B PayLife<3>", false); @@ -1447,7 +1445,7 @@ public class CardFactoryCreatures { kicker.setStackDescription(sb.toString()); card.addSpellAbility(kicker); - } + } private static void getCard_YoseiTheMorningStar(final Card card, final String cardName) { final CardList targetPerms = new CardList(); @@ -1556,9 +1554,9 @@ public class CardFactoryCreatures { } } // execute() }; - card.addDestroyCommand(destroy); + card.addDestroyCommand(destroy); } - + private static void getCard_PhyrexianDreadnought(final Card card, final String cardName) { final Player player = card.getController(); final CardList toSac = new CardList(); @@ -1641,9 +1639,9 @@ public class CardFactoryCreatures { } }; - card.addComesIntoPlayCommand(comesIntoPlay); + card.addComesIntoPlayCommand(comesIntoPlay); } - + private static void getCard_ClonesSeries(final Card card, final String cardName) { final Card[] copyTarget = new Card[1]; @@ -1904,9 +1902,9 @@ public class CardFactoryCreatures { sbStack.append(cardName).append(" - name a card."); discard.setStackDescription(sbStack.toString()); - card.addSpellAbility(discard); + card.addSpellAbility(discard); } - + private static void getCard_DuctCrawler(final Card card, final String cardName) { final String theCost; if (cardName.equals("Duct Crawler")) { @@ -1947,14 +1945,14 @@ public class CardFactoryCreatures { }; finalAb.setDescription(theCost + ": Target creature can't block CARDNAME this turn."); - card.addSpellAbility(finalAb); - } - -// // This is a hardcoded card template + card.addSpellAbility(finalAb); + } + +// // This is a hardcoded card template // // private static void getCard_(final Card card, final String cardName) { // } - + public static Card getCard(final Card card, final String cardName) { if (cardName.equals("Force of Savagery")) { @@ -2019,8 +2017,8 @@ public class CardFactoryCreatures { } else if (cardName.equals("Duct Crawler") || cardName.equals("Shrewd Hatchling") || cardName.equals("Spin Engine") || cardName.equals("Screeching Griffin")) { getCard_DuctCrawler(card, cardName); - } - + } + // *************************************************** // end of card specific code // *************************************************** @@ -2095,7 +2093,7 @@ public class CardFactoryCreatures { return i; } } - + return -1; } }