From ff6dd3626f1fe20e96c7f113fe15c9aa6f6df192 Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Mon, 11 Feb 2019 14:14:36 +0100 Subject: [PATCH 01/21] Client: use Rarity enum rather than a String --- .../org/mage/card/arcane/CardRenderer.java | 2 +- .../org/mage/card/arcane/ManaSymbols.java | 36 +++++++++---------- .../cards/triggers/PollutedBondsTest.java | 4 +++ 3 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java index 69c91dce3de..eed64030675 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java @@ -395,7 +395,7 @@ public abstract class CardRenderer { // Return the width of the drawn symbol protected int drawExpansionSymbol(Graphics2D g, int x, int y, int w, int h) { // Draw the expansion symbol - Image setSymbol = ManaSymbols.getSetSymbolImage(cardView.getExpansionSetCode(), cardView.getRarity().getCode()); + Image setSymbol = ManaSymbols.getSetSymbolImage(cardView.getExpansionSetCode(), cardView.getRarity()); int setSymbolWidth; if (setSymbol == null) { // Don't draw anything when we don't have a set symbol diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java index 89617a0af59..9de2219d32d 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java @@ -10,6 +10,7 @@ import mage.client.util.GUISizeHelper; import mage.client.util.ImageHelper; import mage.client.util.gui.BufferedImageBuilder; import mage.client.util.gui.GuiDisplayUtil; +import mage.constants.Rarity; import mage.utils.StreamUtils; import org.apache.batik.dom.svg.SVGDOMImplementation; import org.apache.batik.transcoder.TranscoderException; @@ -48,10 +49,10 @@ public final class ManaSymbols { private static final Logger LOGGER = Logger.getLogger(ManaSymbols.class); private static final Map> manaImages = new HashMap<>(); - private static final Map> setImages = new ConcurrentHashMap<>(); + private static final Map> setImages = new ConcurrentHashMap<>(); - private static final HashSet onlyMythics = new HashSet<>(); - private static final HashSet withoutSymbols = new HashSet<>(); + private static final Set onlyMythics = new HashSet<>(); + private static final Set withoutSymbols = new HashSet<>(); static { onlyMythics.add("DRB"); @@ -172,19 +173,19 @@ public final class ManaSymbols { continue; } - String[] codes; + Set codes; if (onlyMythics.contains(set)) { - codes = new String[]{"M"}; + codes = EnumSet.of(Rarity.MYTHIC); } else { - codes = new String[]{"C", "U", "R", "M"}; + codes = EnumSet.of(Rarity.COMMON, Rarity.UNCOMMON, Rarity.RARE, Rarity.MYTHIC); } - Map rarityImages = new HashMap<>(); + Map rarityImages = new HashMap<>(); setImages.put(set, rarityImages); // load medium size - for (String rarityCode : codes) { - File file = new File(getResourceSetsPath(ResourceSetSize.MEDIUM) + set + '-' + rarityCode + ".jpg"); + for (Rarity rarityCode : codes) { + File file = new File(getResourceSetsPath(ResourceSetSize.MEDIUM) + set + '-' + rarityCode.getCode() + ".jpg"); try { Image image = UI.getImageIcon(file.getAbsolutePath()).getImage(); int width = image.getWidth(null); @@ -209,7 +210,7 @@ public final class ManaSymbols { file.mkdirs(); } String pathRoot = getResourceSetsPath(ResourceSetSize.SMALL) + set; - for (String code : codes) { + for (Rarity code : codes) { File newFile = new File(pathRoot + '-' + code + ".png"); if (!(MageFrame.isSkipSmallSymbolGenerationForExisting() && newFile.exists())) {// skip if option enabled and file already exists file = new File(getResourceSetsPath(ResourceSetSize.MEDIUM) + set + '-' + code + ".png"); @@ -791,23 +792,22 @@ public final class ManaSymbols { } public static String replaceSetCodeWithHTML(String set, String rarity, int size) { - String _set = set; - if (setImagesExist.containsKey(_set)) { + if (setImagesExist.containsKey(set)) { int factor = size / 15 + 1; - Integer width = setImagesExist.get(_set).width * factor; - Integer height = setImagesExist.get(_set).height * factor; - return "" + rarity + ""; + Integer width = setImagesExist.get(set).width * factor; + Integer height = setImagesExist.get(set).height * factor; + return "" + rarity + ""; } else { return set; } } public static Image getSetSymbolImage(String set) { - return getSetSymbolImage(set, "C"); + return getSetSymbolImage(set, Rarity.COMMON); } - public static Image getSetSymbolImage(String set, String rarity) { - Map rarityImages = setImages.get(set); + public static Image getSetSymbolImage(String set, Rarity rarity) { + Map rarityImages = setImages.get(set); if (rarityImages != null) { return rarityImages.get(rarity); } else { diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java new file mode 100644 index 00000000000..a8f411e1466 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java @@ -0,0 +1,4 @@ +package org.mage.test.cards.triggers; + +public class PollutedBondsTest { +} From c8a4e7a46b316fe0804ae0c13b752be6f74200cf Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Mon, 11 Feb 2019 15:03:18 +0100 Subject: [PATCH 02/21] update JSoup, added test for Polluted Bonds, remove explicit parent groupId from poms --- Mage.Client/pom.xml | 3 +- Mage.Server.Console/pom.xml | 1 - Mage.Sets/pom.xml | 1 - .../cards/triggers/PollutedBondsTest.java | 33 ++++++++++++++++++- Mage.Updater/pom.xml | 1 - 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml index 5be94dfac9c..e9846d4204c 100644 --- a/Mage.Client/pom.xml +++ b/Mage.Client/pom.xml @@ -9,7 +9,6 @@ 1.4.33 - org.mage mage-client jar Mage Client @@ -109,7 +108,7 @@ org.jsoup jsoup - 1.5.2 + 1.11.3 truevfs-profile-base diff --git a/Mage.Server.Console/pom.xml b/Mage.Server.Console/pom.xml index 50c953f3acd..eb9475d207c 100644 --- a/Mage.Server.Console/pom.xml +++ b/Mage.Server.Console/pom.xml @@ -9,7 +9,6 @@ 1.4.33 - org.mage mage.server.console jar Mage Server Console diff --git a/Mage.Sets/pom.xml b/Mage.Sets/pom.xml index 6992395f0d4..14d36bb0f44 100644 --- a/Mage.Sets/pom.xml +++ b/Mage.Sets/pom.xml @@ -10,7 +10,6 @@ 1.4.33 - org.mage mage-sets jar Mage Sets diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java index a8f411e1466..216e4403a32 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PollutedBondsTest.java @@ -1,4 +1,35 @@ package org.mage.test.cards.triggers; -public class PollutedBondsTest { +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +public class PollutedBondsTest extends CardTestPlayerBase { + + final String pollutedBonds = "Polluted Bonds"; + + @Test + public void PollutedBondsSimple(){ + addCard(Zone.BATTLEFIELD, playerA, pollutedBonds); + addCard(Zone.HAND, playerB, "Forest"); + playLand(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Forest"); + setStopAt(2, PhaseStep.POSTCOMBAT_MAIN); + execute(); + assertAllCommandsUsed(); + assertLife(playerA, 22); + assertLife(playerB, 18); + } + + @Test + public void PollutedBondsOwnLand(){ + addCard(Zone.BATTLEFIELD, playerA, pollutedBonds); + addCard(Zone.HAND, playerA, "Forest"); + playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Forest"); + setStopAt(1, PhaseStep.POSTCOMBAT_MAIN); + execute(); + assertAllCommandsUsed(); + assertLife(playerA, 20); + assertLife(playerB, 20); + } } diff --git a/Mage.Updater/pom.xml b/Mage.Updater/pom.xml index f4d46c76553..0a9fc2b7bc2 100644 --- a/Mage.Updater/pom.xml +++ b/Mage.Updater/pom.xml @@ -9,7 +9,6 @@ 4.0.0 - org.mage mage-updater Mage Updater From 6bded2404ef42dbbb7f91041f7ef48c0b391afe4 Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 11 Feb 2019 15:00:36 -0600 Subject: [PATCH 03/21] - Fixed #5586. --- .../mage/cards/k/KaradorGhostChieftain.java | 11 +++++-- .../cards/asthough/CastFromLibraryTest.java | 30 ++++++++++++++++--- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java index db01b9f2226..2715dd70e89 100644 --- a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java +++ b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java @@ -1,4 +1,3 @@ - package mage.cards.k; import java.util.UUID; @@ -115,9 +114,11 @@ class KaradorGhostChieftainContinuousEffect extends ContinuousEffectImpl { return false; } for (Card card : player.getGraveyard().getCards(new FilterCreatureCard(), game)) { + //if (!card.isLand()) { // cards like Dryad Arbor ContinuousEffect effect = new KaradorGhostChieftainCastFromGraveyardEffect(); effect.setTargetPointer(new FixedTarget(card.getId())); game.addEffect(effect, source); + //} } return true; } @@ -148,10 +149,14 @@ class KaradorGhostChieftainCastFromGraveyardEffect extends AsThoughEffectImpl { @Override public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { - if (objectId.equals(getTargetPointer().getFirst(game, source))) { + Card objectCard = game.getCard(objectId); + if (objectCard.getId().equals(getTargetPointer().getFirst(game, source)) + && objectCard.isCreature() + && objectCard.getSpellAbility() != null + && objectCard.getSpellAbility().spellCanBeActivatedRegularlyNow(affectedControllerId, game)) { if (affectedControllerId.equals(source.getControllerId())) { KaradorGhostChieftainWatcher watcher = game.getState().getWatcher(KaradorGhostChieftainWatcher.class, source.getSourceId()); - return watcher != null && !watcher.isAbilityUsed(); + return watcher != null && !watcher.isAbilityUsed(); } } return false; diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/asthough/CastFromLibraryTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/asthough/CastFromLibraryTest.java index 6482f1731a0..63380c9cce5 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/asthough/CastFromLibraryTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/asthough/CastFromLibraryTest.java @@ -1,4 +1,3 @@ - package org.mage.test.cards.asthough; import mage.constants.PhaseStep; @@ -14,17 +13,16 @@ public class CastFromLibraryTest extends CardTestPlayerBase { /** * Any creature that you cast through Vizier of the Menagerie (ie the card - * on top of your deck) is castable at instant speed. This means that they + * on top of your deck) is cast-able at instant speed. This means that they * can be cast on your opponent's turn, before you scry (and thus change the * top card), or even right before the Vizier gets destroyed by a fatal push * or similar. */ @Test - public void testVizierOfTheMenagerie() { + public void testVizierOfTheMenagerieWithGenericCreatures() { addCard(Zone.BATTLEFIELD, playerA, "Forest", 8); addCard(Zone.LIBRARY, playerA, "Silvercoat Lion", 2); - // You may look at the top card of your library. (You may do this at any time.) // You may cast the top card of your library if it's a creature card. // You may spend mana as though it were mana of any type to cast creature spells. @@ -44,4 +42,28 @@ public class CastFromLibraryTest extends CardTestPlayerBase { assertLibraryCount(playerA, "Silvercoat Lion", 1); } + + @Test + public void testVizierOfTheMenagerieWithDryadArbor() { + addCard(Zone.BATTLEFIELD, playerA, "Forest", 8); + addCard(Zone.LIBRARY, playerA, "Dryad Arbor", 2); + // You may look at the top card of your library. (You may do this at any time.) + // You may cast the top card of your library if it's a creature card. + // You may spend mana as though it were mana of any type to cast creature spells. + addCard(Zone.HAND, playerA, "Vizier of the Menagerie", 1); // Creature 3/4 {3}{G} + + skipInitShuffling(); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Vizier of the Menagerie"); + castSpell(1, PhaseStep.BEGIN_COMBAT, playerA, "Dryad Arbor"); + castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Dryad Arbor"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertPermanentCount(playerA, "Vizier of the Menagerie", 1); + assertPermanentCount(playerA, "Dryad Arbor", 0); // can't be cast, only played + assertLibraryCount(playerA, "Dryad Arbor", 2); + + } } From 0bd8a258217657a5abada375c7899378cfd4112d Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 11 Feb 2019 15:02:09 -0600 Subject: [PATCH 04/21] - removed testing code. --- Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java index 2715dd70e89..579f1cdb085 100644 --- a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java +++ b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java @@ -114,11 +114,9 @@ class KaradorGhostChieftainContinuousEffect extends ContinuousEffectImpl { return false; } for (Card card : player.getGraveyard().getCards(new FilterCreatureCard(), game)) { - //if (!card.isLand()) { // cards like Dryad Arbor ContinuousEffect effect = new KaradorGhostChieftainCastFromGraveyardEffect(); effect.setTargetPointer(new FixedTarget(card.getId())); game.addEffect(effect, source); - //} } return true; } From e0d28436e9238b69ac3fe701d71a1e7a30e37a21 Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 11 Feb 2019 15:55:48 -0600 Subject: [PATCH 05/21] - Fixed #5588 --- .../src/mage/cards/c/CombustibleGearhulk.java | 38 +++++++------------ 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java b/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java index 056ea5c7438..4b3cc8e09f6 100644 --- a/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java +++ b/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java @@ -1,4 +1,3 @@ - package mage.cards.c; import java.util.Set; @@ -19,7 +18,6 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; -import mage.target.Target; import mage.target.common.TargetOpponent; /** @@ -29,7 +27,7 @@ import mage.target.common.TargetOpponent; public final class CombustibleGearhulk extends CardImpl { public CombustibleGearhulk(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}{R}{R}"); this.subtype.add(SubType.CONSTRUCT); this.power = new MageInt(6); this.toughness = new MageInt(6); @@ -75,29 +73,19 @@ class CombustibleGearhulkEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (controller != null && sourcePermanent != null) { - UUID opponentId; - if (game.getOpponents(controller.getId()).size() == 1) { - opponentId = game.getOpponents(controller.getId()).iterator().next(); - } else { - Target target = new TargetOpponent(); - controller.choose(outcome, target, source.getSourceId(), game); - opponentId = target.getFirstTarget(); - } - if (opponentId != null) { - Player opponent = game.getPlayer(opponentId); - if (opponent != null) { - String questionDrawThree = "Have " + controller.getLogName() + " draw three cards?"; - if (opponent.chooseUse(outcome, questionDrawThree, source, game)) { - if (!game.isSimulation()) { - game.informPlayers(opponent.getLogName() + " lets " + controller.getLogName() + " draw three cards"); - } - return new DrawCardSourceControllerEffect(3).apply(game, source); - } else { - if (!game.isSimulation()) { - game.informPlayers(opponent.getLogName() + " does not let " + controller.getLogName() + " draw three cards"); - } - return new CombustibleGearhulkMillAndDamageEffect().apply(game, source); + Player opponent = game.getPlayer(source.getFirstTarget()); + if (opponent != null) { + String questionDrawThree = "Have " + controller.getLogName() + " draw three cards?"; + if (opponent.chooseUse(outcome, questionDrawThree, source, game)) { + if (!game.isSimulation()) { + game.informPlayers(opponent.getLogName() + " lets " + controller.getLogName() + " draw three cards"); } + return new DrawCardSourceControllerEffect(3).apply(game, source); + } else { + if (!game.isSimulation()) { + game.informPlayers(opponent.getLogName() + " does not let " + controller.getLogName() + " draw three cards"); + } + return new CombustibleGearhulkMillAndDamageEffect().apply(game, source); } } } From a7acaefb4afb4fc4e373388f4424f9fbccd1956a Mon Sep 17 00:00:00 2001 From: Jeff Date: Mon, 11 Feb 2019 17:04:22 -0600 Subject: [PATCH 06/21] - Fixed text Goblin Flotilla. --- .../src/mage/cards/g/GoblinFlotilla.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java b/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java index caaa53ed511..2abda792419 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFlotilla.java @@ -1,4 +1,3 @@ - package mage.cards.g; import java.util.UUID; @@ -6,6 +5,7 @@ import mage.MageInt; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.common.BlocksOrBecomesBlockedTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.DoUnlessControllerPaysEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; @@ -27,22 +27,32 @@ public final class GoblinFlotilla extends CardImpl { public GoblinFlotilla(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add(SubType.GOBLIN); - + this.power = new MageInt(2); this.toughness = new MageInt(2); // Islandwalk this.addAbility(new IslandwalkAbility()); + // At the beginning of each combat, unless you pay {R}, whenever Goblin Flotilla blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. + Effect effect = new DoUnlessControllerPaysEffect( + new GainAbilitySourceEffect( + new BlocksOrBecomesBlockedTriggeredAbility( + new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), + Duration.EndOfTurn, + "Blocks or Blocked by Goblin Flotilla"), + false), + Duration.EndOfCombat), + new ManaCostsImpl("{R}"), + "Pay Goblin Flotilla combat effect?" + ); + effect.setText("unless you pay {R}, whenever {this} blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn."); this.addAbility(new BeginningOfCombatTriggeredAbility( - new DoUnlessControllerPaysEffect( - new GainAbilitySourceEffect(new BlocksOrBecomesBlockedTriggeredAbility(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, "Blocks or Blocked by Goblin Flotilla"), false), Duration.EndOfCombat), - new ManaCostsImpl("{R}"), - "Pay Goblin Flotilla combat effect?" - ), + effect, TargetController.ANY, false )); + } public GoblinFlotilla(final GoblinFlotilla card) { From ac4e51ce0da99bef0a2ab740c2fad3a47c9f3458 Mon Sep 17 00:00:00 2001 From: Jeff Date: Wed, 13 Feb 2019 10:19:07 -0600 Subject: [PATCH 07/21] - Fixed Rivals' Duel --- Mage.Sets/src/mage/cards/r/RivalsDuel.java | 13 ++++++++++--- .../TargetCreaturePermanentWithDifferentTypes.java | 3 ++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Mage.Sets/src/mage/cards/r/RivalsDuel.java b/Mage.Sets/src/mage/cards/r/RivalsDuel.java index a342736f022..08d8be7d6ec 100644 --- a/Mage.Sets/src/mage/cards/r/RivalsDuel.java +++ b/Mage.Sets/src/mage/cards/r/RivalsDuel.java @@ -1,4 +1,3 @@ - package mage.cards.r; import java.util.UUID; @@ -51,8 +50,16 @@ class RivalsDuelFightTargetsEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Permanent creature1 = game.getPermanent(source.getFirstTarget()); - Permanent creature2 = game.getPermanent(source.getTargets().get(0).getTargets().get(1)); + Permanent creature1 = null; + Permanent creature2 = null; + for (UUID targetId : getTargetPointer().getTargets(game, source)) { + if (creature1 == null) { + creature1 = game.getPermanent(targetId); + } else { + creature2 = game.getPermanent(targetId); + } + } + // 20110930 - 701.10 if (creature1 != null && creature2 != null) { diff --git a/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java b/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java index 396605907d2..4bbc69cabcd 100644 --- a/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java +++ b/Mage/src/main/java/mage/target/common/TargetCreaturePermanentWithDifferentTypes.java @@ -35,7 +35,8 @@ public class TargetCreaturePermanentWithDifferentTypes extends TargetCreaturePer for (Object object : getTargets()) { UUID targetId = (UUID) object; Permanent selectedCreature = game.getPermanent(targetId); - if (!creature.getId().equals(selectedCreature.getId())) { + if (selectedCreature != null + && !creature.getId().equals(selectedCreature.getId())) { if (creature.shareSubtypes(selectedCreature, game)) { return false; } From 7ab5e801e1d37e25e3eb725557fdd28835f03c93 Mon Sep 17 00:00:00 2001 From: Jeff Date: Wed, 13 Feb 2019 18:04:41 -0600 Subject: [PATCH 08/21] - Added requested card Peace Talks. --- Mage.Sets/src/mage/cards/p/PeaceTalks.java | 158 +++++++++ Mage.Sets/src/mage/sets/Visions.java | 377 +++++++++++---------- 2 files changed, 347 insertions(+), 188 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/p/PeaceTalks.java diff --git a/Mage.Sets/src/mage/cards/p/PeaceTalks.java b/Mage.Sets/src/mage/cards/p/PeaceTalks.java new file mode 100644 index 00000000000..10df1e27cde --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PeaceTalks.java @@ -0,0 +1,158 @@ +package mage.cards.p; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.ContinuousRuleModifyingEffect; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.RestrictionEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; + +/** + * + * @author jeffwadsworth + */ +public final class PeaceTalks extends CardImpl { + + public PeaceTalks(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{W}"); + + // This turn and next turn, creatures can't attack, + // and players and permanents can't be the targets + // of spells or activated abilities. + this.getSpellAbility().addEffect(new PeaceTalksEffect()); + + } + + private PeaceTalks(final PeaceTalks card) { + super(card); + } + + @Override + public PeaceTalks copy() { + return new PeaceTalks(this); + } +} + +class PeaceTalksEffect extends OneShotEffect { + + public PeaceTalksEffect() { + super(Outcome.Neutral); + this.staticText = "This turn and next turn, creatures can't attack," + + "and players and permanents can't be the targets of spells " + + "or activated abilities"; + } + + public PeaceTalksEffect(final PeaceTalksEffect effect) { + super(effect); + } + + @Override + public PeaceTalksEffect copy() { + return new PeaceTalksEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + RestrictionEffect effect = new PeaceTalksCantAttackEffect(); + game.addEffect(effect, source); + ContinuousRuleModifyingEffect effect2 = new PeaceTalksPlayersAndPermanentsCantBeTargetsOfSpellsOrActivatedAbilities(); + game.addEffect(effect2, source); + return true; + } +} + +class PeaceTalksCantAttackEffect extends RestrictionEffect { + + public PeaceTalksCantAttackEffect() { + super(Duration.Custom); + staticText = "Creatures can't attack this turn and next turn"; + } + + public PeaceTalksCantAttackEffect(final PeaceTalksCantAttackEffect effect) { + super(effect); + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + return permanent.isCreature(); + } + + @Override + public boolean canAttack(Game game) { + return false; + } + + @Override + public PeaceTalksCantAttackEffect copy() { + return new PeaceTalksCantAttackEffect(this); + } + + @Override + public boolean isInactive(Ability source, Game game) { + if (startingTurn + 2 == game.getTurnNum()) { + this.discard(); + return true; + } + return false; + } +} + +class PeaceTalksPlayersAndPermanentsCantBeTargetsOfSpellsOrActivatedAbilities extends ContinuousRuleModifyingEffectImpl { + + public PeaceTalksPlayersAndPermanentsCantBeTargetsOfSpellsOrActivatedAbilities() { + super(Duration.Custom, Outcome.Neutral); + staticText = "players and permanents can't be the targets of spells or activated abilities"; + } + + public PeaceTalksPlayersAndPermanentsCantBeTargetsOfSpellsOrActivatedAbilities(final PeaceTalksPlayersAndPermanentsCantBeTargetsOfSpellsOrActivatedAbilities effect) { + super(effect); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.CAST_SPELL + || event.getType() == GameEvent.EventType.ACTIVATE_ABILITY; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + for (UUID playerId : game.getPlayer(source.getControllerId()).getInRange()) { + if (event.getTargetId().equals(playerId)) { + return false; + } + } + for (Permanent permanent : game.getBattlefield().getAllActivePermanents()) { + if (event.getTargetId().equals(permanent.getId())) { + return false; + } + } + return true; + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public PeaceTalksPlayersAndPermanentsCantBeTargetsOfSpellsOrActivatedAbilities copy() { + return new PeaceTalksPlayersAndPermanentsCantBeTargetsOfSpellsOrActivatedAbilities(this); + } + + @Override + public boolean isInactive(Ability source, Game game) { + if (startingTurn + 2 == game.getTurnNum()) { + this.discard(); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/Visions.java b/Mage.Sets/src/mage/sets/Visions.java index eccc256a0d8..70ae1d9df1b 100644 --- a/Mage.Sets/src/mage/sets/Visions.java +++ b/Mage.Sets/src/mage/sets/Visions.java @@ -1,188 +1,189 @@ -package mage.sets; - -import mage.cards.ExpansionSet; -import mage.constants.Rarity; -import mage.constants.SetType; - -/** - * - * @author North - */ -public final class Visions extends ExpansionSet { - - private static final Visions instance = new Visions(); - - public static Visions getInstance() { - return instance; - } - - private Visions() { - super("Visions", "VIS", ExpansionSet.buildDate(1997, 1, 11), SetType.EXPANSION); - this.blockName = "Mirage"; - this.parentSet = Mirage.getInstance(); - this.hasBasicLands = false; - this.hasBoosters = true; - this.numBoosterLands = 0; - this.numBoosterCommon = 11; - this.numBoosterUncommon = 3; - this.numBoosterRare = 1; - this.ratioBoosterMythic = 0; - cards.add(new SetCardInfo("Aku Djinn", 51, Rarity.RARE, mage.cards.a.AkuDjinn.class)); - cards.add(new SetCardInfo("Anvil of Bogardan", 141, Rarity.RARE, mage.cards.a.AnvilOfBogardan.class)); - cards.add(new SetCardInfo("Archangel", 1, Rarity.RARE, mage.cards.a.Archangel.class)); - cards.add(new SetCardInfo("Army Ants", 126, Rarity.UNCOMMON, mage.cards.a.ArmyAnts.class)); - cards.add(new SetCardInfo("Betrayal", 26, Rarity.COMMON, mage.cards.b.Betrayal.class)); - cards.add(new SetCardInfo("Blanket of Night", 52, Rarity.UNCOMMON, mage.cards.b.BlanketOfNight.class)); - cards.add(new SetCardInfo("Bogardan Phoenix", 76, Rarity.RARE, mage.cards.b.BogardanPhoenix.class)); - cards.add(new SetCardInfo("Brass-Talon Chimera", 142, Rarity.UNCOMMON, mage.cards.b.BrassTalonChimera.class)); - cards.add(new SetCardInfo("Breathstealer's Crypt", 127, Rarity.RARE, mage.cards.b.BreathstealersCrypt.class)); - cards.add(new SetCardInfo("Breezekeeper", 27, Rarity.COMMON, mage.cards.b.Breezekeeper.class)); - cards.add(new SetCardInfo("Brood of Cockroaches", 53, Rarity.UNCOMMON, mage.cards.b.BroodOfCockroaches.class)); - cards.add(new SetCardInfo("Bull Elephant", 101, Rarity.COMMON, mage.cards.b.BullElephant.class)); - cards.add(new SetCardInfo("Chronatog", 28, Rarity.RARE, mage.cards.c.Chronatog.class)); - cards.add(new SetCardInfo("City of Solitude", 102, Rarity.RARE, mage.cards.c.CityOfSolitude.class)); - cards.add(new SetCardInfo("Cloud Elemental", 29, Rarity.COMMON, mage.cards.c.CloudElemental.class)); - cards.add(new SetCardInfo("Coercion", 54, Rarity.COMMON, mage.cards.c.Coercion.class)); - cards.add(new SetCardInfo("Coral Atoll", 160, Rarity.UNCOMMON, mage.cards.c.CoralAtoll.class)); - cards.add(new SetCardInfo("Corrosion", 128, Rarity.RARE, mage.cards.c.Corrosion.class)); - cards.add(new SetCardInfo("Creeping Mold", 103, Rarity.UNCOMMON, mage.cards.c.CreepingMold.class)); - cards.add(new SetCardInfo("Crypt Rats", 55, Rarity.COMMON, mage.cards.c.CryptRats.class)); - cards.add(new SetCardInfo("Daraja Griffin", 2, Rarity.UNCOMMON, mage.cards.d.DarajaGriffin.class)); - cards.add(new SetCardInfo("Dark Privilege", 56, Rarity.COMMON, mage.cards.d.DarkPrivilege.class)); - cards.add(new SetCardInfo("Death Watch", 57, Rarity.COMMON, mage.cards.d.DeathWatch.class)); - cards.add(new SetCardInfo("Desertion", 30, Rarity.RARE, mage.cards.d.Desertion.class)); - cards.add(new SetCardInfo("Desolation", 58, Rarity.UNCOMMON, mage.cards.d.Desolation.class)); - cards.add(new SetCardInfo("Diamond Kaleidoscope", 143, Rarity.RARE, mage.cards.d.DiamondKaleidoscope.class)); - cards.add(new SetCardInfo("Dormant Volcano", 161, Rarity.UNCOMMON, mage.cards.d.DormantVolcano.class)); - cards.add(new SetCardInfo("Dragon Mask", 144, Rarity.UNCOMMON, mage.cards.d.DragonMask.class)); - cards.add(new SetCardInfo("Dream Tides", 31, Rarity.UNCOMMON, mage.cards.d.DreamTides.class)); - cards.add(new SetCardInfo("Dwarven Vigilantes", 77, Rarity.COMMON, mage.cards.d.DwarvenVigilantes.class)); - cards.add(new SetCardInfo("Elephant Grass", 104, Rarity.UNCOMMON, mage.cards.e.ElephantGrass.class)); - cards.add(new SetCardInfo("Elkin Lair", 78, Rarity.RARE, mage.cards.e.ElkinLair.class)); - cards.add(new SetCardInfo("Elven Cache", 105, Rarity.COMMON, mage.cards.e.ElvenCache.class)); - cards.add(new SetCardInfo("Emerald Charm", 106, Rarity.COMMON, mage.cards.e.EmeraldCharm.class)); - cards.add(new SetCardInfo("Equipoise", 3, Rarity.RARE, mage.cards.e.Equipoise.class)); - cards.add(new SetCardInfo("Everglades", 162, Rarity.UNCOMMON, mage.cards.e.Everglades.class)); - cards.add(new SetCardInfo("Eye of Singularity", 4, Rarity.RARE, mage.cards.e.EyeOfSingularity.class)); - cards.add(new SetCardInfo("Fallen Askari", 59, Rarity.COMMON, mage.cards.f.FallenAskari.class)); - cards.add(new SetCardInfo("Femeref Enchantress", 129, Rarity.RARE, mage.cards.f.FemerefEnchantress.class)); - cards.add(new SetCardInfo("Feral Instinct", 107, Rarity.COMMON, mage.cards.f.FeralInstinct.class)); - cards.add(new SetCardInfo("Fireblast", 79, Rarity.COMMON, mage.cards.f.Fireblast.class)); - cards.add(new SetCardInfo("Firestorm Hellkite", 130, Rarity.RARE, mage.cards.f.FirestormHellkite.class)); - cards.add(new SetCardInfo("Flooded Shoreline", 32, Rarity.RARE, mage.cards.f.FloodedShoreline.class)); - cards.add(new SetCardInfo("Foreshadow", 33, Rarity.UNCOMMON, mage.cards.f.Foreshadow.class)); - cards.add(new SetCardInfo("Freewind Falcon", 5, Rarity.COMMON, mage.cards.f.FreewindFalcon.class)); - cards.add(new SetCardInfo("Funeral Charm", 61, Rarity.COMMON, mage.cards.f.FuneralCharm.class)); - cards.add(new SetCardInfo("Giant Caterpillar", 108, Rarity.COMMON, mage.cards.g.GiantCaterpillar.class)); - cards.add(new SetCardInfo("Goblin Recruiter", 80, Rarity.UNCOMMON, mage.cards.g.GoblinRecruiter.class)); - cards.add(new SetCardInfo("Goblin Swine-Rider", 81, Rarity.COMMON, mage.cards.g.GoblinSwineRider.class)); - cards.add(new SetCardInfo("Gossamer Chains", 6, Rarity.COMMON, mage.cards.g.GossamerChains.class)); - cards.add(new SetCardInfo("Griffin Canyon", 163, Rarity.RARE, mage.cards.g.GriffinCanyon.class)); - cards.add(new SetCardInfo("Guiding Spirit", 131, Rarity.RARE, mage.cards.g.GuidingSpirit.class)); - cards.add(new SetCardInfo("Hearth Charm", 82, Rarity.COMMON, mage.cards.h.HearthCharm.class)); - cards.add(new SetCardInfo("Helm of Awakening", 145, Rarity.UNCOMMON, mage.cards.h.HelmOfAwakening.class)); - cards.add(new SetCardInfo("Honorable Passage", 7, Rarity.UNCOMMON, mage.cards.h.HonorablePassage.class)); - cards.add(new SetCardInfo("Hope Charm", 8, Rarity.COMMON, mage.cards.h.HopeCharm.class)); - cards.add(new SetCardInfo("Hulking Cyclops", 84, Rarity.UNCOMMON, mage.cards.h.HulkingCyclops.class)); - cards.add(new SetCardInfo("Impulse", 34, Rarity.COMMON, mage.cards.i.Impulse.class)); - cards.add(new SetCardInfo("Infantry Veteran", 9, Rarity.COMMON, mage.cards.i.InfantryVeteran.class)); - cards.add(new SetCardInfo("Inspiration", 35, Rarity.COMMON, mage.cards.i.Inspiration.class)); - cards.add(new SetCardInfo("Iron-Heart Chimera", 146, Rarity.UNCOMMON, mage.cards.i.IronHeartChimera.class)); - cards.add(new SetCardInfo("Jamuraan Lion", 10, Rarity.COMMON, mage.cards.j.JamuraanLion.class)); - cards.add(new SetCardInfo("Juju Bubble", 147, Rarity.UNCOMMON, mage.cards.j.JujuBubble.class)); - cards.add(new SetCardInfo("Jungle Basin", 164, Rarity.UNCOMMON, mage.cards.j.JungleBasin.class)); - cards.add(new SetCardInfo("Kaervek's Spite", 63, Rarity.RARE, mage.cards.k.KaerveksSpite.class)); - cards.add(new SetCardInfo("Karoo", 165, Rarity.UNCOMMON, mage.cards.k.Karoo.class)); - cards.add(new SetCardInfo("Katabatic Winds", 109, Rarity.RARE, mage.cards.k.KatabaticWinds.class)); - cards.add(new SetCardInfo("Keeper of Kookus", 85, Rarity.COMMON, mage.cards.k.KeeperOfKookus.class)); - cards.add(new SetCardInfo("King Cheetah", 110, Rarity.COMMON, mage.cards.k.KingCheetah.class)); - cards.add(new SetCardInfo("Knight of the Mists", 36, Rarity.COMMON, mage.cards.k.KnightOfTheMists.class)); - cards.add(new SetCardInfo("Knight of Valor", 11, Rarity.COMMON, mage.cards.k.KnightOfValor.class)); - cards.add(new SetCardInfo("Kookus", 86, Rarity.RARE, mage.cards.k.Kookus.class)); - cards.add(new SetCardInfo("Lead-Belly Chimera", 148, Rarity.UNCOMMON, mage.cards.l.LeadBellyChimera.class)); - cards.add(new SetCardInfo("Lichenthrope", 112, Rarity.RARE, mage.cards.l.Lichenthrope.class)); - cards.add(new SetCardInfo("Lightning Cloud", 87, Rarity.RARE, mage.cards.l.LightningCloud.class)); - cards.add(new SetCardInfo("Longbow Archer", 12, Rarity.UNCOMMON, mage.cards.l.LongbowArcher.class)); - cards.add(new SetCardInfo("Magma Mine", 149, Rarity.UNCOMMON, mage.cards.m.MagmaMine.class)); - cards.add(new SetCardInfo("Man-o'-War", 37, Rarity.COMMON, mage.cards.m.ManOWar.class)); - cards.add(new SetCardInfo("Miraculous Recovery", 13, Rarity.UNCOMMON, mage.cards.m.MiraculousRecovery.class)); - cards.add(new SetCardInfo("Mob Mentality", 88, Rarity.UNCOMMON, mage.cards.m.MobMentality.class)); - cards.add(new SetCardInfo("Mortal Wound", 113, Rarity.COMMON, mage.cards.m.MortalWound.class)); - cards.add(new SetCardInfo("Mundungu", 132, Rarity.UNCOMMON, mage.cards.m.Mundungu.class)); - cards.add(new SetCardInfo("Mystic Veil", 38, Rarity.COMMON, mage.cards.m.MysticVeil.class)); - cards.add(new SetCardInfo("Natural Order", 114, Rarity.RARE, mage.cards.n.NaturalOrder.class)); - cards.add(new SetCardInfo("Necromancy", 64, Rarity.UNCOMMON, mage.cards.n.Necromancy.class)); - cards.add(new SetCardInfo("Necrosavant", 65, Rarity.RARE, mage.cards.n.Necrosavant.class)); - cards.add(new SetCardInfo("Nekrataal", 66, Rarity.UNCOMMON, mage.cards.n.Nekrataal.class)); - cards.add(new SetCardInfo("Ovinomancer", 39, Rarity.UNCOMMON, mage.cards.o.Ovinomancer.class)); - cards.add(new SetCardInfo("Panther Warriors", 115, Rarity.COMMON, mage.cards.p.PantherWarriors.class)); - cards.add(new SetCardInfo("Parapet", 14, Rarity.COMMON, mage.cards.p.Parapet.class)); - cards.add(new SetCardInfo("Phyrexian Marauder", 151, Rarity.RARE, mage.cards.p.PhyrexianMarauder.class)); - cards.add(new SetCardInfo("Phyrexian Walker", 152, Rarity.COMMON, mage.cards.p.PhyrexianWalker.class)); - cards.add(new SetCardInfo("Pillar Tombs of Aku", 67, Rarity.RARE, mage.cards.p.PillarTombsOfAku.class)); - cards.add(new SetCardInfo("Prosperity", 40, Rarity.UNCOMMON, mage.cards.p.Prosperity.class)); - cards.add(new SetCardInfo("Python", 68, Rarity.COMMON, mage.cards.p.Python.class)); - cards.add(new SetCardInfo("Quicksand", 166, Rarity.UNCOMMON, mage.cards.q.Quicksand.class)); - cards.add(new SetCardInfo("Quirion Ranger", 117, Rarity.COMMON, mage.cards.q.QuirionRanger.class)); - cards.add(new SetCardInfo("Raging Gorilla", 90, Rarity.COMMON, mage.cards.r.RagingGorilla.class)); - cards.add(new SetCardInfo("Rainbow Efreet", 41, Rarity.RARE, mage.cards.r.RainbowEfreet.class)); - cards.add(new SetCardInfo("Relentless Assault", 91, Rarity.RARE, mage.cards.r.RelentlessAssault.class)); - cards.add(new SetCardInfo("Relic Ward", 16, Rarity.UNCOMMON, mage.cards.r.RelicWard.class)); - cards.add(new SetCardInfo("Remedy", 17, Rarity.COMMON, mage.cards.r.Remedy.class)); - cards.add(new SetCardInfo("Resistance Fighter", 18, Rarity.COMMON, mage.cards.r.ResistanceFighter.class)); - cards.add(new SetCardInfo("Retribution of the Meek", 19, Rarity.RARE, mage.cards.r.RetributionOfTheMeek.class)); - cards.add(new SetCardInfo("Righteous Aura", 20, Rarity.COMMON, mage.cards.r.RighteousAura.class)); - cards.add(new SetCardInfo("Righteous War", 134, Rarity.RARE, mage.cards.r.RighteousWar.class)); - cards.add(new SetCardInfo("River Boa", 118, Rarity.COMMON, mage.cards.r.RiverBoa.class)); - cards.add(new SetCardInfo("Rock Slide", 92, Rarity.COMMON, mage.cards.r.RockSlide.class)); - cards.add(new SetCardInfo("Rowen", 119, Rarity.RARE, mage.cards.r.Rowen.class)); - cards.add(new SetCardInfo("Sands of Time", 153, Rarity.RARE, mage.cards.s.SandsOfTime.class)); - cards.add(new SetCardInfo("Scalebane's Elite", 135, Rarity.UNCOMMON, mage.cards.s.ScalebanesElite.class)); - cards.add(new SetCardInfo("Shimmering Efreet", 42, Rarity.UNCOMMON, mage.cards.s.ShimmeringEfreet.class)); - cards.add(new SetCardInfo("Shrieking Drake", 43, Rarity.COMMON, mage.cards.s.ShriekingDrake.class)); - cards.add(new SetCardInfo("Simoon", 136, Rarity.UNCOMMON, mage.cards.s.Simoon.class)); - cards.add(new SetCardInfo("Sisay's Ring", 154, Rarity.COMMON, mage.cards.s.SisaysRing.class)); - cards.add(new SetCardInfo("Snake Basket", 155, Rarity.RARE, mage.cards.s.SnakeBasket.class)); - cards.add(new SetCardInfo("Solfatara", 93, Rarity.COMMON, mage.cards.s.Solfatara.class)); - cards.add(new SetCardInfo("Song of Blood", 94, Rarity.COMMON, mage.cards.s.SongOfBlood.class)); - cards.add(new SetCardInfo("Spider Climb", 120, Rarity.COMMON, mage.cards.s.SpiderClimb.class)); - cards.add(new SetCardInfo("Spitting Drake", 95, Rarity.UNCOMMON, mage.cards.s.SpittingDrake.class)); - cards.add(new SetCardInfo("Squandered Resources", 137, Rarity.RARE, mage.cards.s.SquanderedResources.class)); - cards.add(new SetCardInfo("Stampeding Wildebeests", 121, Rarity.UNCOMMON, mage.cards.s.StampedingWildebeests.class)); - cards.add(new SetCardInfo("Suleiman's Legacy", 138, Rarity.RARE, mage.cards.s.SuleimansLegacy.class)); - cards.add(new SetCardInfo("Summer Bloom", 122, Rarity.UNCOMMON, mage.cards.s.SummerBloom.class)); - cards.add(new SetCardInfo("Sun Clasp", 21, Rarity.COMMON, mage.cards.s.SunClasp.class)); - cards.add(new SetCardInfo("Suq'Ata Assassin", 69, Rarity.UNCOMMON, mage.cards.s.SuqAtaAssassin.class)); - cards.add(new SetCardInfo("Suq'Ata Lancer", 96, Rarity.COMMON, mage.cards.s.SuqAtaLancer.class)); - cards.add(new SetCardInfo("Talruum Champion", 97, Rarity.COMMON, mage.cards.t.TalruumChampion.class)); - cards.add(new SetCardInfo("Talruum Piper", 98, Rarity.UNCOMMON, mage.cards.t.TalruumPiper.class)); - cards.add(new SetCardInfo("Tar Pit Warrior", 70, Rarity.COMMON, mage.cards.t.TarPitWarrior.class)); - cards.add(new SetCardInfo("Teferi's Honor Guard", 22, Rarity.UNCOMMON, mage.cards.t.TeferisHonorGuard.class)); - cards.add(new SetCardInfo("Teferi's Puzzle Box", 156, Rarity.RARE, mage.cards.t.TeferisPuzzleBox.class)); - cards.add(new SetCardInfo("Teferi's Realm", 44, Rarity.RARE, mage.cards.t.TeferisRealm.class)); - cards.add(new SetCardInfo("Tempest Drake", 139, Rarity.UNCOMMON, mage.cards.t.TempestDrake.class)); - cards.add(new SetCardInfo("Three Wishes", 45, Rarity.RARE, mage.cards.t.ThreeWishes.class)); - cards.add(new SetCardInfo("Tin-Wing Chimera", 157, Rarity.UNCOMMON, mage.cards.t.TinWingChimera.class)); - cards.add(new SetCardInfo("Tithe", 23, Rarity.RARE, mage.cards.t.Tithe.class)); - cards.add(new SetCardInfo("Tremor", 99, Rarity.COMMON, mage.cards.t.Tremor.class)); - cards.add(new SetCardInfo("Triangle of War", 158, Rarity.RARE, mage.cards.t.TriangleOfWar.class)); - cards.add(new SetCardInfo("Uktabi Orangutan", 123, Rarity.UNCOMMON, mage.cards.u.UktabiOrangutan.class)); - cards.add(new SetCardInfo("Undiscovered Paradise", 167, Rarity.RARE, mage.cards.u.UndiscoveredParadise.class)); - cards.add(new SetCardInfo("Undo", 47, Rarity.COMMON, mage.cards.u.Undo.class)); - cards.add(new SetCardInfo("Urborg Mindsucker", 71, Rarity.COMMON, mage.cards.u.UrborgMindsucker.class)); - cards.add(new SetCardInfo("Vampiric Tutor", 72, Rarity.RARE, mage.cards.v.VampiricTutor.class)); - cards.add(new SetCardInfo("Vampirism", 73, Rarity.UNCOMMON, mage.cards.v.Vampirism.class)); - cards.add(new SetCardInfo("Vanishing", 48, Rarity.COMMON, mage.cards.v.Vanishing.class)); - cards.add(new SetCardInfo("Viashino Sandstalker", 100, Rarity.UNCOMMON, mage.cards.v.ViashinoSandstalker.class)); - cards.add(new SetCardInfo("Viashivan Dragon", 140, Rarity.RARE, mage.cards.v.ViashivanDragon.class)); - cards.add(new SetCardInfo("Vision Charm", 49, Rarity.COMMON, mage.cards.v.VisionCharm.class)); - cards.add(new SetCardInfo("Wake of Vultures", 74, Rarity.COMMON, mage.cards.w.WakeOfVultures.class)); - cards.add(new SetCardInfo("Wand of Denial", 159, Rarity.RARE, mage.cards.w.WandOfDenial.class)); - cards.add(new SetCardInfo("Warrior's Honor", 24, Rarity.COMMON, mage.cards.w.WarriorsHonor.class)); - cards.add(new SetCardInfo("Warthog", 124, Rarity.COMMON, mage.cards.w.Warthog.class)); - cards.add(new SetCardInfo("Waterspout Djinn", 50, Rarity.UNCOMMON, mage.cards.w.WaterspoutDjinn.class)); - cards.add(new SetCardInfo("Wicked Reward", 75, Rarity.COMMON, mage.cards.w.WickedReward.class)); - cards.add(new SetCardInfo("Wind Shear", 125, Rarity.UNCOMMON, mage.cards.w.WindShear.class)); - cards.add(new SetCardInfo("Zhalfirin Crusader", 25, Rarity.RARE, mage.cards.z.ZhalfirinCrusader.class)); - } -} +package mage.sets; + +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; + +/** + * + * @author North + */ +public final class Visions extends ExpansionSet { + + private static final Visions instance = new Visions(); + + public static Visions getInstance() { + return instance; + } + + private Visions() { + super("Visions", "VIS", ExpansionSet.buildDate(1997, 1, 11), SetType.EXPANSION); + this.blockName = "Mirage"; + this.parentSet = Mirage.getInstance(); + this.hasBasicLands = false; + this.hasBoosters = true; + this.numBoosterLands = 0; + this.numBoosterCommon = 11; + this.numBoosterUncommon = 3; + this.numBoosterRare = 1; + this.ratioBoosterMythic = 0; + cards.add(new SetCardInfo("Aku Djinn", 51, Rarity.RARE, mage.cards.a.AkuDjinn.class)); + cards.add(new SetCardInfo("Anvil of Bogardan", 141, Rarity.RARE, mage.cards.a.AnvilOfBogardan.class)); + cards.add(new SetCardInfo("Archangel", 1, Rarity.RARE, mage.cards.a.Archangel.class)); + cards.add(new SetCardInfo("Army Ants", 126, Rarity.UNCOMMON, mage.cards.a.ArmyAnts.class)); + cards.add(new SetCardInfo("Betrayal", 26, Rarity.COMMON, mage.cards.b.Betrayal.class)); + cards.add(new SetCardInfo("Blanket of Night", 52, Rarity.UNCOMMON, mage.cards.b.BlanketOfNight.class)); + cards.add(new SetCardInfo("Bogardan Phoenix", 76, Rarity.RARE, mage.cards.b.BogardanPhoenix.class)); + cards.add(new SetCardInfo("Brass-Talon Chimera", 142, Rarity.UNCOMMON, mage.cards.b.BrassTalonChimera.class)); + cards.add(new SetCardInfo("Breathstealer's Crypt", 127, Rarity.RARE, mage.cards.b.BreathstealersCrypt.class)); + cards.add(new SetCardInfo("Breezekeeper", 27, Rarity.COMMON, mage.cards.b.Breezekeeper.class)); + cards.add(new SetCardInfo("Brood of Cockroaches", 53, Rarity.UNCOMMON, mage.cards.b.BroodOfCockroaches.class)); + cards.add(new SetCardInfo("Bull Elephant", 101, Rarity.COMMON, mage.cards.b.BullElephant.class)); + cards.add(new SetCardInfo("Chronatog", 28, Rarity.RARE, mage.cards.c.Chronatog.class)); + cards.add(new SetCardInfo("City of Solitude", 102, Rarity.RARE, mage.cards.c.CityOfSolitude.class)); + cards.add(new SetCardInfo("Cloud Elemental", 29, Rarity.COMMON, mage.cards.c.CloudElemental.class)); + cards.add(new SetCardInfo("Coercion", 54, Rarity.COMMON, mage.cards.c.Coercion.class)); + cards.add(new SetCardInfo("Coral Atoll", 160, Rarity.UNCOMMON, mage.cards.c.CoralAtoll.class)); + cards.add(new SetCardInfo("Corrosion", 128, Rarity.RARE, mage.cards.c.Corrosion.class)); + cards.add(new SetCardInfo("Creeping Mold", 103, Rarity.UNCOMMON, mage.cards.c.CreepingMold.class)); + cards.add(new SetCardInfo("Crypt Rats", 55, Rarity.COMMON, mage.cards.c.CryptRats.class)); + cards.add(new SetCardInfo("Daraja Griffin", 2, Rarity.UNCOMMON, mage.cards.d.DarajaGriffin.class)); + cards.add(new SetCardInfo("Dark Privilege", 56, Rarity.COMMON, mage.cards.d.DarkPrivilege.class)); + cards.add(new SetCardInfo("Death Watch", 57, Rarity.COMMON, mage.cards.d.DeathWatch.class)); + cards.add(new SetCardInfo("Desertion", 30, Rarity.RARE, mage.cards.d.Desertion.class)); + cards.add(new SetCardInfo("Desolation", 58, Rarity.UNCOMMON, mage.cards.d.Desolation.class)); + cards.add(new SetCardInfo("Diamond Kaleidoscope", 143, Rarity.RARE, mage.cards.d.DiamondKaleidoscope.class)); + cards.add(new SetCardInfo("Dormant Volcano", 161, Rarity.UNCOMMON, mage.cards.d.DormantVolcano.class)); + cards.add(new SetCardInfo("Dragon Mask", 144, Rarity.UNCOMMON, mage.cards.d.DragonMask.class)); + cards.add(new SetCardInfo("Dream Tides", 31, Rarity.UNCOMMON, mage.cards.d.DreamTides.class)); + cards.add(new SetCardInfo("Dwarven Vigilantes", 77, Rarity.COMMON, mage.cards.d.DwarvenVigilantes.class)); + cards.add(new SetCardInfo("Elephant Grass", 104, Rarity.UNCOMMON, mage.cards.e.ElephantGrass.class)); + cards.add(new SetCardInfo("Elkin Lair", 78, Rarity.RARE, mage.cards.e.ElkinLair.class)); + cards.add(new SetCardInfo("Elven Cache", 105, Rarity.COMMON, mage.cards.e.ElvenCache.class)); + cards.add(new SetCardInfo("Emerald Charm", 106, Rarity.COMMON, mage.cards.e.EmeraldCharm.class)); + cards.add(new SetCardInfo("Equipoise", 3, Rarity.RARE, mage.cards.e.Equipoise.class)); + cards.add(new SetCardInfo("Everglades", 162, Rarity.UNCOMMON, mage.cards.e.Everglades.class)); + cards.add(new SetCardInfo("Eye of Singularity", 4, Rarity.RARE, mage.cards.e.EyeOfSingularity.class)); + cards.add(new SetCardInfo("Fallen Askari", 59, Rarity.COMMON, mage.cards.f.FallenAskari.class)); + cards.add(new SetCardInfo("Femeref Enchantress", 129, Rarity.RARE, mage.cards.f.FemerefEnchantress.class)); + cards.add(new SetCardInfo("Feral Instinct", 107, Rarity.COMMON, mage.cards.f.FeralInstinct.class)); + cards.add(new SetCardInfo("Fireblast", 79, Rarity.COMMON, mage.cards.f.Fireblast.class)); + cards.add(new SetCardInfo("Firestorm Hellkite", 130, Rarity.RARE, mage.cards.f.FirestormHellkite.class)); + cards.add(new SetCardInfo("Flooded Shoreline", 32, Rarity.RARE, mage.cards.f.FloodedShoreline.class)); + cards.add(new SetCardInfo("Foreshadow", 33, Rarity.UNCOMMON, mage.cards.f.Foreshadow.class)); + cards.add(new SetCardInfo("Freewind Falcon", 5, Rarity.COMMON, mage.cards.f.FreewindFalcon.class)); + cards.add(new SetCardInfo("Funeral Charm", 61, Rarity.COMMON, mage.cards.f.FuneralCharm.class)); + cards.add(new SetCardInfo("Giant Caterpillar", 108, Rarity.COMMON, mage.cards.g.GiantCaterpillar.class)); + cards.add(new SetCardInfo("Goblin Recruiter", 80, Rarity.UNCOMMON, mage.cards.g.GoblinRecruiter.class)); + cards.add(new SetCardInfo("Goblin Swine-Rider", 81, Rarity.COMMON, mage.cards.g.GoblinSwineRider.class)); + cards.add(new SetCardInfo("Gossamer Chains", 6, Rarity.COMMON, mage.cards.g.GossamerChains.class)); + cards.add(new SetCardInfo("Griffin Canyon", 163, Rarity.RARE, mage.cards.g.GriffinCanyon.class)); + cards.add(new SetCardInfo("Guiding Spirit", 131, Rarity.RARE, mage.cards.g.GuidingSpirit.class)); + cards.add(new SetCardInfo("Hearth Charm", 82, Rarity.COMMON, mage.cards.h.HearthCharm.class)); + cards.add(new SetCardInfo("Helm of Awakening", 145, Rarity.UNCOMMON, mage.cards.h.HelmOfAwakening.class)); + cards.add(new SetCardInfo("Honorable Passage", 7, Rarity.UNCOMMON, mage.cards.h.HonorablePassage.class)); + cards.add(new SetCardInfo("Hope Charm", 8, Rarity.COMMON, mage.cards.h.HopeCharm.class)); + cards.add(new SetCardInfo("Hulking Cyclops", 84, Rarity.UNCOMMON, mage.cards.h.HulkingCyclops.class)); + cards.add(new SetCardInfo("Impulse", 34, Rarity.COMMON, mage.cards.i.Impulse.class)); + cards.add(new SetCardInfo("Infantry Veteran", 9, Rarity.COMMON, mage.cards.i.InfantryVeteran.class)); + cards.add(new SetCardInfo("Inspiration", 35, Rarity.COMMON, mage.cards.i.Inspiration.class)); + cards.add(new SetCardInfo("Iron-Heart Chimera", 146, Rarity.UNCOMMON, mage.cards.i.IronHeartChimera.class)); + cards.add(new SetCardInfo("Jamuraan Lion", 10, Rarity.COMMON, mage.cards.j.JamuraanLion.class)); + cards.add(new SetCardInfo("Juju Bubble", 147, Rarity.UNCOMMON, mage.cards.j.JujuBubble.class)); + cards.add(new SetCardInfo("Jungle Basin", 164, Rarity.UNCOMMON, mage.cards.j.JungleBasin.class)); + cards.add(new SetCardInfo("Kaervek's Spite", 63, Rarity.RARE, mage.cards.k.KaerveksSpite.class)); + cards.add(new SetCardInfo("Karoo", 165, Rarity.UNCOMMON, mage.cards.k.Karoo.class)); + cards.add(new SetCardInfo("Katabatic Winds", 109, Rarity.RARE, mage.cards.k.KatabaticWinds.class)); + cards.add(new SetCardInfo("Keeper of Kookus", 85, Rarity.COMMON, mage.cards.k.KeeperOfKookus.class)); + cards.add(new SetCardInfo("King Cheetah", 110, Rarity.COMMON, mage.cards.k.KingCheetah.class)); + cards.add(new SetCardInfo("Knight of the Mists", 36, Rarity.COMMON, mage.cards.k.KnightOfTheMists.class)); + cards.add(new SetCardInfo("Knight of Valor", 11, Rarity.COMMON, mage.cards.k.KnightOfValor.class)); + cards.add(new SetCardInfo("Kookus", 86, Rarity.RARE, mage.cards.k.Kookus.class)); + cards.add(new SetCardInfo("Lead-Belly Chimera", 148, Rarity.UNCOMMON, mage.cards.l.LeadBellyChimera.class)); + cards.add(new SetCardInfo("Lichenthrope", 112, Rarity.RARE, mage.cards.l.Lichenthrope.class)); + cards.add(new SetCardInfo("Lightning Cloud", 87, Rarity.RARE, mage.cards.l.LightningCloud.class)); + cards.add(new SetCardInfo("Longbow Archer", 12, Rarity.UNCOMMON, mage.cards.l.LongbowArcher.class)); + cards.add(new SetCardInfo("Magma Mine", 149, Rarity.UNCOMMON, mage.cards.m.MagmaMine.class)); + cards.add(new SetCardInfo("Man-o'-War", 37, Rarity.COMMON, mage.cards.m.ManOWar.class)); + cards.add(new SetCardInfo("Miraculous Recovery", 13, Rarity.UNCOMMON, mage.cards.m.MiraculousRecovery.class)); + cards.add(new SetCardInfo("Mob Mentality", 88, Rarity.UNCOMMON, mage.cards.m.MobMentality.class)); + cards.add(new SetCardInfo("Mortal Wound", 113, Rarity.COMMON, mage.cards.m.MortalWound.class)); + cards.add(new SetCardInfo("Mundungu", 132, Rarity.UNCOMMON, mage.cards.m.Mundungu.class)); + cards.add(new SetCardInfo("Mystic Veil", 38, Rarity.COMMON, mage.cards.m.MysticVeil.class)); + cards.add(new SetCardInfo("Natural Order", 114, Rarity.RARE, mage.cards.n.NaturalOrder.class)); + cards.add(new SetCardInfo("Necromancy", 64, Rarity.UNCOMMON, mage.cards.n.Necromancy.class)); + cards.add(new SetCardInfo("Necrosavant", 65, Rarity.RARE, mage.cards.n.Necrosavant.class)); + cards.add(new SetCardInfo("Nekrataal", 66, Rarity.UNCOMMON, mage.cards.n.Nekrataal.class)); + cards.add(new SetCardInfo("Ovinomancer", 39, Rarity.UNCOMMON, mage.cards.o.Ovinomancer.class)); + cards.add(new SetCardInfo("Panther Warriors", 115, Rarity.COMMON, mage.cards.p.PantherWarriors.class)); + cards.add(new SetCardInfo("Parapet", 14, Rarity.COMMON, mage.cards.p.Parapet.class)); + cards.add(new SetCardInfo("Peace Talks", 15, Rarity.UNCOMMON, mage.cards.p.PeaceTalks.class)); + cards.add(new SetCardInfo("Phyrexian Marauder", 151, Rarity.RARE, mage.cards.p.PhyrexianMarauder.class)); + cards.add(new SetCardInfo("Phyrexian Walker", 152, Rarity.COMMON, mage.cards.p.PhyrexianWalker.class)); + cards.add(new SetCardInfo("Pillar Tombs of Aku", 67, Rarity.RARE, mage.cards.p.PillarTombsOfAku.class)); + cards.add(new SetCardInfo("Prosperity", 40, Rarity.UNCOMMON, mage.cards.p.Prosperity.class)); + cards.add(new SetCardInfo("Python", 68, Rarity.COMMON, mage.cards.p.Python.class)); + cards.add(new SetCardInfo("Quicksand", 166, Rarity.UNCOMMON, mage.cards.q.Quicksand.class)); + cards.add(new SetCardInfo("Quirion Ranger", 117, Rarity.COMMON, mage.cards.q.QuirionRanger.class)); + cards.add(new SetCardInfo("Raging Gorilla", 90, Rarity.COMMON, mage.cards.r.RagingGorilla.class)); + cards.add(new SetCardInfo("Rainbow Efreet", 41, Rarity.RARE, mage.cards.r.RainbowEfreet.class)); + cards.add(new SetCardInfo("Relentless Assault", 91, Rarity.RARE, mage.cards.r.RelentlessAssault.class)); + cards.add(new SetCardInfo("Relic Ward", 16, Rarity.UNCOMMON, mage.cards.r.RelicWard.class)); + cards.add(new SetCardInfo("Remedy", 17, Rarity.COMMON, mage.cards.r.Remedy.class)); + cards.add(new SetCardInfo("Resistance Fighter", 18, Rarity.COMMON, mage.cards.r.ResistanceFighter.class)); + cards.add(new SetCardInfo("Retribution of the Meek", 19, Rarity.RARE, mage.cards.r.RetributionOfTheMeek.class)); + cards.add(new SetCardInfo("Righteous Aura", 20, Rarity.COMMON, mage.cards.r.RighteousAura.class)); + cards.add(new SetCardInfo("Righteous War", 134, Rarity.RARE, mage.cards.r.RighteousWar.class)); + cards.add(new SetCardInfo("River Boa", 118, Rarity.COMMON, mage.cards.r.RiverBoa.class)); + cards.add(new SetCardInfo("Rock Slide", 92, Rarity.COMMON, mage.cards.r.RockSlide.class)); + cards.add(new SetCardInfo("Rowen", 119, Rarity.RARE, mage.cards.r.Rowen.class)); + cards.add(new SetCardInfo("Sands of Time", 153, Rarity.RARE, mage.cards.s.SandsOfTime.class)); + cards.add(new SetCardInfo("Scalebane's Elite", 135, Rarity.UNCOMMON, mage.cards.s.ScalebanesElite.class)); + cards.add(new SetCardInfo("Shimmering Efreet", 42, Rarity.UNCOMMON, mage.cards.s.ShimmeringEfreet.class)); + cards.add(new SetCardInfo("Shrieking Drake", 43, Rarity.COMMON, mage.cards.s.ShriekingDrake.class)); + cards.add(new SetCardInfo("Simoon", 136, Rarity.UNCOMMON, mage.cards.s.Simoon.class)); + cards.add(new SetCardInfo("Sisay's Ring", 154, Rarity.COMMON, mage.cards.s.SisaysRing.class)); + cards.add(new SetCardInfo("Snake Basket", 155, Rarity.RARE, mage.cards.s.SnakeBasket.class)); + cards.add(new SetCardInfo("Solfatara", 93, Rarity.COMMON, mage.cards.s.Solfatara.class)); + cards.add(new SetCardInfo("Song of Blood", 94, Rarity.COMMON, mage.cards.s.SongOfBlood.class)); + cards.add(new SetCardInfo("Spider Climb", 120, Rarity.COMMON, mage.cards.s.SpiderClimb.class)); + cards.add(new SetCardInfo("Spitting Drake", 95, Rarity.UNCOMMON, mage.cards.s.SpittingDrake.class)); + cards.add(new SetCardInfo("Squandered Resources", 137, Rarity.RARE, mage.cards.s.SquanderedResources.class)); + cards.add(new SetCardInfo("Stampeding Wildebeests", 121, Rarity.UNCOMMON, mage.cards.s.StampedingWildebeests.class)); + cards.add(new SetCardInfo("Suleiman's Legacy", 138, Rarity.RARE, mage.cards.s.SuleimansLegacy.class)); + cards.add(new SetCardInfo("Summer Bloom", 122, Rarity.UNCOMMON, mage.cards.s.SummerBloom.class)); + cards.add(new SetCardInfo("Sun Clasp", 21, Rarity.COMMON, mage.cards.s.SunClasp.class)); + cards.add(new SetCardInfo("Suq'Ata Assassin", 69, Rarity.UNCOMMON, mage.cards.s.SuqAtaAssassin.class)); + cards.add(new SetCardInfo("Suq'Ata Lancer", 96, Rarity.COMMON, mage.cards.s.SuqAtaLancer.class)); + cards.add(new SetCardInfo("Talruum Champion", 97, Rarity.COMMON, mage.cards.t.TalruumChampion.class)); + cards.add(new SetCardInfo("Talruum Piper", 98, Rarity.UNCOMMON, mage.cards.t.TalruumPiper.class)); + cards.add(new SetCardInfo("Tar Pit Warrior", 70, Rarity.COMMON, mage.cards.t.TarPitWarrior.class)); + cards.add(new SetCardInfo("Teferi's Honor Guard", 22, Rarity.UNCOMMON, mage.cards.t.TeferisHonorGuard.class)); + cards.add(new SetCardInfo("Teferi's Puzzle Box", 156, Rarity.RARE, mage.cards.t.TeferisPuzzleBox.class)); + cards.add(new SetCardInfo("Teferi's Realm", 44, Rarity.RARE, mage.cards.t.TeferisRealm.class)); + cards.add(new SetCardInfo("Tempest Drake", 139, Rarity.UNCOMMON, mage.cards.t.TempestDrake.class)); + cards.add(new SetCardInfo("Three Wishes", 45, Rarity.RARE, mage.cards.t.ThreeWishes.class)); + cards.add(new SetCardInfo("Tin-Wing Chimera", 157, Rarity.UNCOMMON, mage.cards.t.TinWingChimera.class)); + cards.add(new SetCardInfo("Tithe", 23, Rarity.RARE, mage.cards.t.Tithe.class)); + cards.add(new SetCardInfo("Tremor", 99, Rarity.COMMON, mage.cards.t.Tremor.class)); + cards.add(new SetCardInfo("Triangle of War", 158, Rarity.RARE, mage.cards.t.TriangleOfWar.class)); + cards.add(new SetCardInfo("Uktabi Orangutan", 123, Rarity.UNCOMMON, mage.cards.u.UktabiOrangutan.class)); + cards.add(new SetCardInfo("Undiscovered Paradise", 167, Rarity.RARE, mage.cards.u.UndiscoveredParadise.class)); + cards.add(new SetCardInfo("Undo", 47, Rarity.COMMON, mage.cards.u.Undo.class)); + cards.add(new SetCardInfo("Urborg Mindsucker", 71, Rarity.COMMON, mage.cards.u.UrborgMindsucker.class)); + cards.add(new SetCardInfo("Vampiric Tutor", 72, Rarity.RARE, mage.cards.v.VampiricTutor.class)); + cards.add(new SetCardInfo("Vampirism", 73, Rarity.UNCOMMON, mage.cards.v.Vampirism.class)); + cards.add(new SetCardInfo("Vanishing", 48, Rarity.COMMON, mage.cards.v.Vanishing.class)); + cards.add(new SetCardInfo("Viashino Sandstalker", 100, Rarity.UNCOMMON, mage.cards.v.ViashinoSandstalker.class)); + cards.add(new SetCardInfo("Viashivan Dragon", 140, Rarity.RARE, mage.cards.v.ViashivanDragon.class)); + cards.add(new SetCardInfo("Vision Charm", 49, Rarity.COMMON, mage.cards.v.VisionCharm.class)); + cards.add(new SetCardInfo("Wake of Vultures", 74, Rarity.COMMON, mage.cards.w.WakeOfVultures.class)); + cards.add(new SetCardInfo("Wand of Denial", 159, Rarity.RARE, mage.cards.w.WandOfDenial.class)); + cards.add(new SetCardInfo("Warrior's Honor", 24, Rarity.COMMON, mage.cards.w.WarriorsHonor.class)); + cards.add(new SetCardInfo("Warthog", 124, Rarity.COMMON, mage.cards.w.Warthog.class)); + cards.add(new SetCardInfo("Waterspout Djinn", 50, Rarity.UNCOMMON, mage.cards.w.WaterspoutDjinn.class)); + cards.add(new SetCardInfo("Wicked Reward", 75, Rarity.COMMON, mage.cards.w.WickedReward.class)); + cards.add(new SetCardInfo("Wind Shear", 125, Rarity.UNCOMMON, mage.cards.w.WindShear.class)); + cards.add(new SetCardInfo("Zhalfirin Crusader", 25, Rarity.RARE, mage.cards.z.ZhalfirinCrusader.class)); + } +} From 921f1ff196f2ba18daec40e4f28cca43948d7030 Mon Sep 17 00:00:00 2001 From: Jeff Date: Thu, 14 Feb 2019 11:24:05 -0600 Subject: [PATCH 09/21] - Added requested card Null Chamber. --- Mage.Sets/src/mage/cards/n/NullChamber.java | 170 +++++ Mage.Sets/src/mage/sets/Mirage.java | 677 ++++++++++---------- 2 files changed, 509 insertions(+), 338 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/n/NullChamber.java diff --git a/Mage.Sets/src/mage/cards/n/NullChamber.java b/Mage.Sets/src/mage/cards/n/NullChamber.java new file mode 100644 index 00000000000..43e5cf667c2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NullChamber.java @@ -0,0 +1,170 @@ +package mage.cards.n; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.AsEntersBattlefieldAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.ChooseACardNameEffect; +import mage.constants.SuperType; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.repository.CardRepository; +import mage.choices.Choice; +import mage.choices.ChoiceImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.util.CardUtil; + +/** + * + * @author jeffwadsworth + */ +public final class NullChamber extends CardImpl { + + public NullChamber(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}"); + + this.addSuperType(SuperType.WORLD); + + // As Null Chamber enters the battlefield, you and an opponent each name a card other than a basic land card. + // The named cards can't be played. + this.addAbility(new AsEntersBattlefieldAbility(new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.NOT_BASIC_LAND_NAME))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new NullChamberReplacementEffect())); + + } + + public NullChamber(final NullChamber card) { + super(card); + } + + @Override + public NullChamber copy() { + return new NullChamber(this); + } +} + +class NullChamberChooseACardNameEffect extends OneShotEffect { + + public static String INFO_KEY = "NAMED_CARD"; + + public enum TypeOfName { + NOT_BASIC_LAND_NAME, + } + + private final TypeOfName typeOfName; + + public NullChamberChooseACardNameEffect(TypeOfName typeOfName) { + super(Outcome.Detriment); + this.typeOfName = typeOfName; + staticText = setText(); + } + + public NullChamberChooseACardNameEffect(final NullChamberChooseACardNameEffect effect) { + super(effect); + this.typeOfName = effect.typeOfName; + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + Player opponent = game.getPlayer(source.getFirstTarget()); + MageObject sourceObject = game.getPermanentEntering(source.getSourceId()); + if (sourceObject == null) { + sourceObject = game.getObject(source.getSourceId()); + } + if (controller != null + && opponent != null + && sourceObject != null) { + Choice cardChoice = new ChoiceImpl(); + switch (typeOfName) { + case NOT_BASIC_LAND_NAME: + cardChoice.setChoices(CardRepository.instance.getNotBasicLandNames()); + cardChoice.setMessage("Choose a card name other than a basic land card name"); + break; + } + cardChoice.clearChoice(); + if (controller.choose(Outcome.Detriment, cardChoice, game)) { + String cardName = cardChoice.getChoice(); + if (!game.isSimulation()) { + game.informPlayers(sourceObject.getLogName() + ", named card: [" + cardName + ']'); + } + game.getState().setValue(source.getSourceId().toString() + INFO_KEY, cardName); + if (sourceObject instanceof Permanent) { + ((Permanent) sourceObject).addInfo(INFO_KEY, CardUtil.addToolTipMarkTags("Named card: " + cardName), game); + } + return true; + } + } + return false; + } + + @Override + public NullChamberChooseACardNameEffect copy() { + return new NullChamberChooseACardNameEffect(this); + } + + private String setText() { + StringBuilder sb = new StringBuilder("choose a "); + switch (typeOfName) { + case NOT_BASIC_LAND_NAME: + sb.append("card name other than a basic land card"); + break; + } + sb.append(" name"); + return sb.toString(); + } +} + + +class NullChamberReplacementEffect extends ContinuousRuleModifyingEffectImpl { + + public NullChamberReplacementEffect() { + super(Duration.WhileOnBattlefield, Outcome.AIDontUseIt); + staticText = "The named cards can't be played"; + } + + public NullChamberReplacementEffect(final NullChamberReplacementEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public NullChamberReplacementEffect copy() { + return new NullChamberReplacementEffect(this); + } + + @Override + public String getInfoMessage(Ability source, GameEvent event, Game game) { + MageObject mageObject = game.getObject(source.getSourceId()); + if (mageObject != null) { + return "You can't cast a spell with that name (" + mageObject.getLogName() + " in play)."; + } + return null; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == EventType.CAST_SPELL; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + MageObject object = game.getObject(event.getSourceId()); + return (object != null + && object.getName().equals(game.getState().getValue(source.getSourceId().toString() + ChooseACardNameEffect.INFO_KEY))); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/Mirage.java b/Mage.Sets/src/mage/sets/Mirage.java index b0cabb9e7f0..b81b18308df 100644 --- a/Mage.Sets/src/mage/sets/Mirage.java +++ b/Mage.Sets/src/mage/sets/Mirage.java @@ -1,339 +1,340 @@ -package mage.sets; - -import mage.cards.ExpansionSet; -import mage.constants.Rarity; -import mage.constants.SetType; - -/** - * @author North - */ -public final class Mirage extends ExpansionSet { - - private static final Mirage instance = new Mirage(); - - public static Mirage getInstance() { - return instance; - } - - private Mirage() { - super("Mirage", "MIR", ExpansionSet.buildDate(1996, 8, 21), SetType.EXPANSION); - this.blockName = "Mirage"; - this.hasBoosters = true; - this.numBoosterLands = 0; - this.numBoosterCommon = 11; - this.numBoosterUncommon = 3; - this.numBoosterRare = 1; - this.ratioBoosterMythic = 0; - - cards.add(new SetCardInfo("Abyssal Hunter", 103, Rarity.RARE, mage.cards.a.AbyssalHunter.class)); - cards.add(new SetCardInfo("Afiya Grove", 205, Rarity.RARE, mage.cards.a.AfiyaGrove.class)); - cards.add(new SetCardInfo("Afterlife", 1, Rarity.UNCOMMON, mage.cards.a.Afterlife.class)); - cards.add(new SetCardInfo("Agility", 154, Rarity.COMMON, mage.cards.a.Agility.class)); - cards.add(new SetCardInfo("Alarum", 2, Rarity.COMMON, mage.cards.a.Alarum.class)); - cards.add(new SetCardInfo("Aleatory", 155, Rarity.UNCOMMON, mage.cards.a.Aleatory.class)); - cards.add(new SetCardInfo("Amber Prison", 292, Rarity.RARE, mage.cards.a.AmberPrison.class)); - cards.add(new SetCardInfo("Amulet of Unmaking", 293, Rarity.RARE, mage.cards.a.AmuletOfUnmaking.class)); - cards.add(new SetCardInfo("Ancestral Memories", 52, Rarity.RARE, mage.cards.a.AncestralMemories.class)); - cards.add(new SetCardInfo("Armor of Thorns", 206, Rarity.COMMON, mage.cards.a.ArmorOfThorns.class)); - cards.add(new SetCardInfo("Armorer Guildmage", 156, Rarity.COMMON, mage.cards.a.ArmorerGuildmage.class)); - cards.add(new SetCardInfo("Ashen Powder", 104, Rarity.RARE, mage.cards.a.AshenPowder.class)); - cards.add(new SetCardInfo("Asmira, Holy Avenger", 256, Rarity.RARE, mage.cards.a.AsmiraHolyAvenger.class)); - cards.add(new SetCardInfo("Auspicious Ancestor", 3, Rarity.RARE, mage.cards.a.AuspiciousAncestor.class)); - cards.add(new SetCardInfo("Azimaet Drake", 53, Rarity.COMMON, mage.cards.a.AzimaetDrake.class)); - cards.add(new SetCardInfo("Bad River", 324, Rarity.UNCOMMON, mage.cards.b.BadRiver.class)); - cards.add(new SetCardInfo("Barbed Foliage", 207, Rarity.UNCOMMON, mage.cards.b.BarbedFoliage.class)); - cards.add(new SetCardInfo("Barbed-Back Wurm", 105, Rarity.UNCOMMON, mage.cards.b.BarbedBackWurm.class)); - cards.add(new SetCardInfo("Bay Falcon", 54, Rarity.COMMON, mage.cards.b.BayFalcon.class)); - cards.add(new SetCardInfo("Bazaar of Wonders", 55, Rarity.RARE, mage.cards.b.BazaarOfWonders.class)); - cards.add(new SetCardInfo("Benthic Djinn", 257, Rarity.RARE, mage.cards.b.BenthicDjinn.class)); - cards.add(new SetCardInfo("Binding Agony", 106, Rarity.COMMON, mage.cards.b.BindingAgony.class)); - cards.add(new SetCardInfo("Blighted Shaman", 107, Rarity.UNCOMMON, mage.cards.b.BlightedShaman.class)); - cards.add(new SetCardInfo("Blinding Light", 5, Rarity.UNCOMMON, mage.cards.b.BlindingLight.class)); - cards.add(new SetCardInfo("Blistering Barrier", 159, Rarity.COMMON, mage.cards.b.BlisteringBarrier.class)); - cards.add(new SetCardInfo("Bone Harvest", 108, Rarity.COMMON, mage.cards.b.BoneHarvest.class)); - cards.add(new SetCardInfo("Boomerang", 56, Rarity.COMMON, mage.cards.b.Boomerang.class)); - cards.add(new SetCardInfo("Breathstealer", 109, Rarity.COMMON, mage.cards.b.Breathstealer.class)); - cards.add(new SetCardInfo("Brushwagg", 208, Rarity.RARE, mage.cards.b.Brushwagg.class)); - cards.add(new SetCardInfo("Builder's Bane", 160, Rarity.COMMON, mage.cards.b.BuildersBane.class)); - cards.add(new SetCardInfo("Burning Palm Efreet", 161, Rarity.UNCOMMON, mage.cards.b.BurningPalmEfreet.class)); - cards.add(new SetCardInfo("Burning Shield Askari", 162, Rarity.COMMON, mage.cards.b.BurningShieldAskari.class)); - cards.add(new SetCardInfo("Cadaverous Bloom", 258, Rarity.RARE, mage.cards.c.CadaverousBloom.class)); - cards.add(new SetCardInfo("Cadaverous Knight", 110, Rarity.COMMON, mage.cards.c.CadaverousKnight.class)); - cards.add(new SetCardInfo("Canopy Dragon", 209, Rarity.RARE, mage.cards.c.CanopyDragon.class)); - cards.add(new SetCardInfo("Carrion", 111, Rarity.RARE, mage.cards.c.Carrion.class)); - cards.add(new SetCardInfo("Catacomb Dragon", 112, Rarity.RARE, mage.cards.c.CatacombDragon.class)); - cards.add(new SetCardInfo("Celestial Dawn", 6, Rarity.RARE, mage.cards.c.CelestialDawn.class)); - cards.add(new SetCardInfo("Cerulean Wyvern", 57, Rarity.UNCOMMON, mage.cards.c.CeruleanWyvern.class)); - cards.add(new SetCardInfo("Chaos Charm", 163, Rarity.COMMON, mage.cards.c.ChaosCharm.class)); - cards.add(new SetCardInfo("Chaosphere", 164, Rarity.RARE, mage.cards.c.Chaosphere.class)); - cards.add(new SetCardInfo("Charcoal Diamond", 296, Rarity.UNCOMMON, mage.cards.c.CharcoalDiamond.class)); - cards.add(new SetCardInfo("Chariot of the Sun", 262, Rarity.UNCOMMON, mage.cards.c.ChariotOfTheSun.class)); - cards.add(new SetCardInfo("Choking Sands", 113, Rarity.COMMON, mage.cards.c.ChokingSands.class)); - cards.add(new SetCardInfo("Cinder Cloud", 165, Rarity.UNCOMMON, mage.cards.c.CinderCloud.class)); - cards.add(new SetCardInfo("Civic Guildmage", 7, Rarity.COMMON, mage.cards.c.CivicGuildmage.class)); - cards.add(new SetCardInfo("Cloak of Invisibility", 58, Rarity.COMMON, mage.cards.c.CloakOfInvisibility.class)); - cards.add(new SetCardInfo("Consuming Ferocity", 166, Rarity.UNCOMMON, mage.cards.c.ConsumingFerocity.class)); - cards.add(new SetCardInfo("Coral Fighters", 59, Rarity.UNCOMMON, mage.cards.c.CoralFighters.class)); - cards.add(new SetCardInfo("Crash of Rhinos", 210, Rarity.COMMON, mage.cards.c.CrashOfRhinos.class)); - cards.add(new SetCardInfo("Crimson Hellkite", 167, Rarity.RARE, mage.cards.c.CrimsonHellkite.class)); - cards.add(new SetCardInfo("Crypt Cobra", 114, Rarity.UNCOMMON, mage.cards.c.CryptCobra.class)); - cards.add(new SetCardInfo("Crystal Golem", 298, Rarity.UNCOMMON, mage.cards.c.CrystalGolem.class)); - cards.add(new SetCardInfo("Crystal Vein", 325, Rarity.UNCOMMON, mage.cards.c.CrystalVein.class)); - cards.add(new SetCardInfo("Cursed Totem", 299, Rarity.RARE, mage.cards.c.CursedTotem.class)); - cards.add(new SetCardInfo("Daring Apprentice", 60, Rarity.RARE, mage.cards.d.DaringApprentice.class)); - cards.add(new SetCardInfo("Dark Banishing", 115, Rarity.COMMON, mage.cards.d.DarkBanishing.class)); - cards.add(new SetCardInfo("Dark Ritual", 116, Rarity.COMMON, mage.cards.d.DarkRitual.class)); - cards.add(new SetCardInfo("Dazzling Beauty", 8, Rarity.COMMON, mage.cards.d.DazzlingBeauty.class)); - cards.add(new SetCardInfo("Delirium", 260, Rarity.UNCOMMON, mage.cards.d.Delirium.class)); - cards.add(new SetCardInfo("Dirtwater Wraith", 117, Rarity.COMMON, mage.cards.d.DirtwaterWraith.class)); - cards.add(new SetCardInfo("Disempower", 9, Rarity.COMMON, mage.cards.d.Disempower.class)); - cards.add(new SetCardInfo("Disenchant", 10, Rarity.COMMON, mage.cards.d.Disenchant.class)); - cards.add(new SetCardInfo("Dissipate", 61, Rarity.UNCOMMON, mage.cards.d.Dissipate.class)); - cards.add(new SetCardInfo("Divine Offering", 11, Rarity.COMMON, mage.cards.d.DivineOffering.class)); - cards.add(new SetCardInfo("Divine Retribution", 12, Rarity.RARE, mage.cards.d.DivineRetribution.class)); - cards.add(new SetCardInfo("Drain Life", 118, Rarity.COMMON, mage.cards.d.DrainLife.class)); - cards.add(new SetCardInfo("Dread Specter", 119, Rarity.UNCOMMON, mage.cards.d.DreadSpecter.class)); - cards.add(new SetCardInfo("Dream Cache", 62, Rarity.COMMON, mage.cards.d.DreamCache.class)); - cards.add(new SetCardInfo("Dwarven Miner", 169, Rarity.UNCOMMON, mage.cards.d.DwarvenMiner.class)); - cards.add(new SetCardInfo("Dwarven Nomad", 170, Rarity.COMMON, mage.cards.d.DwarvenNomad.class)); - cards.add(new SetCardInfo("Early Harvest", 213, Rarity.RARE, mage.cards.e.EarlyHarvest.class)); - cards.add(new SetCardInfo("Ebony Charm", 120, Rarity.COMMON, mage.cards.e.EbonyCharm.class)); - cards.add(new SetCardInfo("Ekundu Griffin", 13, Rarity.COMMON, mage.cards.e.EkunduGriffin.class)); - cards.add(new SetCardInfo("Elixir of Vitality", 300, Rarity.UNCOMMON, mage.cards.e.ElixirOfVitality.class)); - cards.add(new SetCardInfo("Emberwilde Caliph", 322, Rarity.RARE, mage.cards.e.EmberwildeCaliph.class)); - cards.add(new SetCardInfo("Emberwilde Djinn", 172, Rarity.RARE, mage.cards.e.EmberwildeDjinn.class)); - cards.add(new SetCardInfo("Energy Bolt", 263, Rarity.RARE, mage.cards.e.EnergyBolt.class)); - cards.add(new SetCardInfo("Energy Vortex", 64, Rarity.RARE, mage.cards.e.EnergyVortex.class)); - cards.add(new SetCardInfo("Enfeeblement", 121, Rarity.COMMON, mage.cards.e.Enfeeblement.class)); - cards.add(new SetCardInfo("Enlightened Tutor", 14, Rarity.UNCOMMON, mage.cards.e.EnlightenedTutor.class)); - cards.add(new SetCardInfo("Ersatz Gnomes", 301, Rarity.UNCOMMON, mage.cards.e.ErsatzGnomes.class)); - cards.add(new SetCardInfo("Ether Well", 65, Rarity.UNCOMMON, mage.cards.e.EtherWell.class)); - cards.add(new SetCardInfo("Ethereal Champion", 15, Rarity.RARE, mage.cards.e.EtherealChampion.class)); - cards.add(new SetCardInfo("Fallow Earth", 214, Rarity.UNCOMMON, mage.cards.f.FallowEarth.class)); - cards.add(new SetCardInfo("Favorable Destiny", 16, Rarity.UNCOMMON, mage.cards.f.FavorableDestiny.class)); - cards.add(new SetCardInfo("Femeref Archers", 215, Rarity.UNCOMMON, mage.cards.f.FemerefArchers.class)); - cards.add(new SetCardInfo("Femeref Healer", 17, Rarity.COMMON, mage.cards.f.FemerefHealer.class)); - cards.add(new SetCardInfo("Femeref Knight", 18, Rarity.COMMON, mage.cards.f.FemerefKnight.class)); - cards.add(new SetCardInfo("Femeref Scouts", 19, Rarity.COMMON, mage.cards.f.FemerefScouts.class)); - cards.add(new SetCardInfo("Feral Shadow", 122, Rarity.COMMON, mage.cards.f.FeralShadow.class)); - cards.add(new SetCardInfo("Fetid Horror", 123, Rarity.COMMON, mage.cards.f.FetidHorror.class)); - cards.add(new SetCardInfo("Final Fortune", 173, Rarity.RARE, mage.cards.f.FinalFortune.class)); - cards.add(new SetCardInfo("Fire Diamond", 302, Rarity.UNCOMMON, mage.cards.f.FireDiamond.class)); - cards.add(new SetCardInfo("Firebreathing", 174, Rarity.COMMON, mage.cards.f.Firebreathing.class)); - cards.add(new SetCardInfo("Flame Elemental", 175, Rarity.UNCOMMON, mage.cards.f.FlameElemental.class)); - cards.add(new SetCardInfo("Flare", 176, Rarity.COMMON, mage.cards.f.Flare.class)); - cards.add(new SetCardInfo("Flash", 66, Rarity.RARE, mage.cards.f.Flash.class)); - cards.add(new SetCardInfo("Flood Plain", 326, Rarity.UNCOMMON, mage.cards.f.FloodPlain.class)); - cards.add(new SetCardInfo("Floodgate", 67, Rarity.UNCOMMON, mage.cards.f.Floodgate.class)); - cards.add(new SetCardInfo("Fog", 216, Rarity.COMMON, mage.cards.f.Fog.class)); - cards.add(new SetCardInfo("Foratog", 217, Rarity.UNCOMMON, mage.cards.f.Foratog.class)); - cards.add(new SetCardInfo("Forbidden Crypt", 124, Rarity.RARE, mage.cards.f.ForbiddenCrypt.class)); - cards.add(new SetCardInfo("Forest", 347, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Forest", 348, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Forest", 349, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Forest", 350, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Forsaken Wastes", 125, Rarity.RARE, mage.cards.f.ForsakenWastes.class)); - cards.add(new SetCardInfo("Frenetic Efreet", 264, Rarity.RARE, mage.cards.f.FreneticEfreet.class)); - cards.add(new SetCardInfo("Giant Mantis", 218, Rarity.COMMON, mage.cards.g.GiantMantis.class)); - cards.add(new SetCardInfo("Gibbering Hyenas", 219, Rarity.COMMON, mage.cards.g.GibberingHyenas.class)); - cards.add(new SetCardInfo("Goblin Elite Infantry", 177, Rarity.COMMON, mage.cards.g.GoblinEliteInfantry.class)); - cards.add(new SetCardInfo("Goblin Scouts", 178, Rarity.UNCOMMON, mage.cards.g.GoblinScouts.class)); - cards.add(new SetCardInfo("Goblin Soothsayer", 179, Rarity.UNCOMMON, mage.cards.g.GoblinSoothsayer.class)); - cards.add(new SetCardInfo("Goblin Tinkerer", 180, Rarity.COMMON, mage.cards.g.GoblinTinkerer.class)); - cards.add(new SetCardInfo("Granger Guildmage", 220, Rarity.COMMON, mage.cards.g.GrangerGuildmage.class)); - cards.add(new SetCardInfo("Grasslands", 327, Rarity.UNCOMMON, mage.cards.g.Grasslands.class)); - cards.add(new SetCardInfo("Grave Servitude", 126, Rarity.COMMON, mage.cards.g.GraveServitude.class)); - cards.add(new SetCardInfo("Gravebane Zombie", 127, Rarity.COMMON, mage.cards.g.GravebaneZombie.class)); - cards.add(new SetCardInfo("Grim Feast", 265, Rarity.RARE, mage.cards.g.GrimFeast.class)); - cards.add(new SetCardInfo("Grinning Totem", 303, Rarity.RARE, mage.cards.g.GrinningTotem.class)); - cards.add(new SetCardInfo("Hakim, Loreweaver", 68, Rarity.RARE, mage.cards.h.HakimLoreweaver.class)); - cards.add(new SetCardInfo("Hall of Gemstone", 221, Rarity.RARE, mage.cards.h.HallOfGemstone.class)); - cards.add(new SetCardInfo("Hammer of Bogardan", 181, Rarity.RARE, mage.cards.h.HammerOfBogardan.class)); - cards.add(new SetCardInfo("Harbinger of Night", 128, Rarity.RARE, mage.cards.h.HarbingerOfNight.class)); - cards.add(new SetCardInfo("Harbor Guardian", 266, Rarity.UNCOMMON, mage.cards.h.HarborGuardian.class)); - cards.add(new SetCardInfo("Harmattan Efreet", 69, Rarity.UNCOMMON, mage.cards.h.HarmattanEfreet.class)); - cards.add(new SetCardInfo("Hazerider Drake", 268, Rarity.UNCOMMON, mage.cards.h.HazeriderDrake.class)); - cards.add(new SetCardInfo("Healing Salve", 20, Rarity.COMMON, mage.cards.h.HealingSalve.class)); - cards.add(new SetCardInfo("Hivis of the Scale", 182, Rarity.RARE, mage.cards.h.HivisOfTheScale.class)); - cards.add(new SetCardInfo("Horrible Hordes", 304, Rarity.UNCOMMON, mage.cards.h.HorribleHordes.class)); - cards.add(new SetCardInfo("Igneous Golem", 305, Rarity.UNCOMMON, mage.cards.i.IgneousGolem.class)); - cards.add(new SetCardInfo("Illicit Auction", 183, Rarity.RARE, mage.cards.i.IllicitAuction.class)); - cards.add(new SetCardInfo("Illumination", 21, Rarity.UNCOMMON, mage.cards.i.Illumination.class)); - cards.add(new SetCardInfo("Incinerate", 184, Rarity.COMMON, mage.cards.i.Incinerate.class)); - cards.add(new SetCardInfo("Infernal Contract", 129, Rarity.RARE, mage.cards.i.InfernalContract.class)); - cards.add(new SetCardInfo("Iron Tusk Elephant", 22, Rarity.UNCOMMON, mage.cards.i.IronTuskElephant.class)); - cards.add(new SetCardInfo("Island", 335, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Island", 336, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Island", 337, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Island", 338, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Ivory Charm", 23, Rarity.COMMON, mage.cards.i.IvoryCharm.class)); - cards.add(new SetCardInfo("Jolrael's Centaur", 222, Rarity.COMMON, mage.cards.j.JolraelsCentaur.class)); - cards.add(new SetCardInfo("Jolt", 70, Rarity.COMMON, mage.cards.j.Jolt.class)); - cards.add(new SetCardInfo("Jungle Patrol", 223, Rarity.RARE, mage.cards.j.JunglePatrol.class)); - cards.add(new SetCardInfo("Jungle Troll", 269, Rarity.UNCOMMON, mage.cards.j.JungleTroll.class)); - cards.add(new SetCardInfo("Jungle Wurm", 224, Rarity.COMMON, mage.cards.j.JungleWurm.class)); - cards.add(new SetCardInfo("Kaervek's Hex", 130, Rarity.UNCOMMON, mage.cards.k.KaerveksHex.class)); - cards.add(new SetCardInfo("Kaervek's Purge", 270, Rarity.UNCOMMON, mage.cards.k.KaerveksPurge.class)); - cards.add(new SetCardInfo("Kaervek's Torch", 185, Rarity.COMMON, mage.cards.k.KaerveksTorch.class)); - cards.add(new SetCardInfo("Karoo Meerkat", 225, Rarity.UNCOMMON, mage.cards.k.KarooMeerkat.class)); - cards.add(new SetCardInfo("Kukemssa Pirates", 71, Rarity.RARE, mage.cards.k.KukemssaPirates.class)); - cards.add(new SetCardInfo("Kukemssa Serpent", 72, Rarity.COMMON, mage.cards.k.KukemssaSerpent.class)); - cards.add(new SetCardInfo("Lead Golem", 306, Rarity.UNCOMMON, mage.cards.l.LeadGolem.class)); - cards.add(new SetCardInfo("Leering Gargoyle", 271, Rarity.RARE, mage.cards.l.LeeringGargoyle.class)); - cards.add(new SetCardInfo("Lightning Reflexes", 186, Rarity.COMMON, mage.cards.l.LightningReflexes.class)); - cards.add(new SetCardInfo("Lion's Eye Diamond", 307, Rarity.RARE, mage.cards.l.LionsEyeDiamond.class)); - cards.add(new SetCardInfo("Locust Swarm", 226, Rarity.UNCOMMON, mage.cards.l.LocustSwarm.class)); - cards.add(new SetCardInfo("Lure of Prey", 227, Rarity.RARE, mage.cards.l.LureOfPrey.class)); - cards.add(new SetCardInfo("Malignant Growth", 272, Rarity.RARE, mage.cards.m.MalignantGrowth.class)); - cards.add(new SetCardInfo("Mana Prism", 308, Rarity.UNCOMMON, mage.cards.m.ManaPrism.class)); - cards.add(new SetCardInfo("Mangara's Tome", 309, Rarity.RARE, mage.cards.m.MangarasTome.class)); - cards.add(new SetCardInfo("Marble Diamond", 310, Rarity.UNCOMMON, mage.cards.m.MarbleDiamond.class)); - cards.add(new SetCardInfo("Maro", 228, Rarity.RARE, mage.cards.m.Maro.class)); - cards.add(new SetCardInfo("Melesse Spirit", 27, Rarity.UNCOMMON, mage.cards.m.MelesseSpirit.class)); - cards.add(new SetCardInfo("Memory Lapse", 74, Rarity.COMMON, mage.cards.m.MemoryLapse.class)); - cards.add(new SetCardInfo("Merfolk Raiders", 75, Rarity.COMMON, mage.cards.m.MerfolkRaiders.class)); - cards.add(new SetCardInfo("Merfolk Seer", 76, Rarity.COMMON, mage.cards.m.MerfolkSeer.class)); - cards.add(new SetCardInfo("Mind Harness", 78, Rarity.UNCOMMON, mage.cards.m.MindHarness.class)); - cards.add(new SetCardInfo("Mire Shade", 131, Rarity.UNCOMMON, mage.cards.m.MireShade.class)); - cards.add(new SetCardInfo("Misers' Cage", 311, Rarity.RARE, mage.cards.m.MisersCage.class)); - cards.add(new SetCardInfo("Mist Dragon", 79, Rarity.RARE, mage.cards.m.MistDragon.class)); - cards.add(new SetCardInfo("Moss Diamond", 312, Rarity.UNCOMMON, mage.cards.m.MossDiamond.class)); - cards.add(new SetCardInfo("Mountain Valley", 328, Rarity.UNCOMMON, mage.cards.m.MountainValley.class)); - cards.add(new SetCardInfo("Mountain", 343, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Mountain", 344, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Mountain", 345, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Mountain", 346, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Mtenda Griffin", 28, Rarity.UNCOMMON, mage.cards.m.MtendaGriffin.class)); - cards.add(new SetCardInfo("Mtenda Herder", 29, Rarity.COMMON, mage.cards.m.MtendaHerder.class)); - cards.add(new SetCardInfo("Mystical Tutor", 80, Rarity.UNCOMMON, mage.cards.m.MysticalTutor.class)); - cards.add(new SetCardInfo("Natural Balance", 231, Rarity.RARE, mage.cards.n.NaturalBalance.class)); - cards.add(new SetCardInfo("Nettletooth Djinn", 232, Rarity.UNCOMMON, mage.cards.n.NettletoothDjinn.class)); - cards.add(new SetCardInfo("Noble Elephant", 30, Rarity.COMMON, mage.cards.n.NobleElephant.class)); - cards.add(new SetCardInfo("Nocturnal Raid", 132, Rarity.UNCOMMON, mage.cards.n.NocturnalRaid.class)); - cards.add(new SetCardInfo("Pacifism", 32, Rarity.COMMON, mage.cards.p.Pacifism.class)); - cards.add(new SetCardInfo("Painful Memories", 133, Rarity.UNCOMMON, mage.cards.p.PainfulMemories.class)); - cards.add(new SetCardInfo("Patagia Golem", 313, Rarity.UNCOMMON, mage.cards.p.PatagiaGolem.class)); - cards.add(new SetCardInfo("Paupers' Cage", 314, Rarity.RARE, mage.cards.p.PaupersCage.class)); - cards.add(new SetCardInfo("Pearl Dragon", 33, Rarity.RARE, mage.cards.p.PearlDragon.class)); - cards.add(new SetCardInfo("Phyrexian Dreadnought", 315, Rarity.RARE, mage.cards.p.PhyrexianDreadnought.class)); - cards.add(new SetCardInfo("Phyrexian Purge", 273, Rarity.RARE, mage.cards.p.PhyrexianPurge.class)); - cards.add(new SetCardInfo("Phyrexian Tribute", 134, Rarity.RARE, mage.cards.p.PhyrexianTribute.class)); - cards.add(new SetCardInfo("Phyrexian Vault", 316, Rarity.UNCOMMON, mage.cards.p.PhyrexianVault.class)); - cards.add(new SetCardInfo("Plains", 331, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Plains", 332, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Plains", 333, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Plains", 334, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Political Trickery", 81, Rarity.RARE, mage.cards.p.PoliticalTrickery.class)); - cards.add(new SetCardInfo("Polymorph", 82, Rarity.RARE, mage.cards.p.Polymorph.class)); - cards.add(new SetCardInfo("Power Sink", 83, Rarity.COMMON, mage.cards.p.PowerSink.class)); - cards.add(new SetCardInfo("Prismatic Boon", 274, Rarity.UNCOMMON, mage.cards.p.PrismaticBoon.class)); - cards.add(new SetCardInfo("Prismatic Circle", 34, Rarity.COMMON, mage.cards.p.PrismaticCircle.class)); - cards.add(new SetCardInfo("Prismatic Lace", 84, Rarity.RARE, mage.cards.p.PrismaticLace.class)); - cards.add(new SetCardInfo("Psychic Transfer", 85, Rarity.RARE, mage.cards.p.PsychicTransfer.class)); - cards.add(new SetCardInfo("Purgatory", 275, Rarity.RARE, mage.cards.p.Purgatory.class)); - cards.add(new SetCardInfo("Purraj of Urborg", 135, Rarity.RARE, mage.cards.p.PurrajOfUrborg.class)); - cards.add(new SetCardInfo("Pyric Salamander", 187, Rarity.COMMON, mage.cards.p.PyricSalamander.class)); - cards.add(new SetCardInfo("Quirion Elves", 234, Rarity.COMMON, mage.cards.q.QuirionElves.class)); - cards.add(new SetCardInfo("Radiant Essence", 276, Rarity.UNCOMMON, mage.cards.r.RadiantEssence.class)); - cards.add(new SetCardInfo("Raging Spirit", 188, Rarity.COMMON, mage.cards.r.RagingSpirit.class)); - cards.add(new SetCardInfo("Rampant Growth", 235, Rarity.COMMON, mage.cards.r.RampantGrowth.class)); - cards.add(new SetCardInfo("Rashida Scalebane", 35, Rarity.RARE, mage.cards.r.RashidaScalebane.class)); - cards.add(new SetCardInfo("Ravenous Vampire", 136, Rarity.UNCOMMON, mage.cards.r.RavenousVampire.class)); - cards.add(new SetCardInfo("Ray of Command", 86, Rarity.COMMON, mage.cards.r.RayOfCommand.class)); - cards.add(new SetCardInfo("Razor Pendulum", 317, Rarity.RARE, mage.cards.r.RazorPendulum.class)); - cards.add(new SetCardInfo("Reality Ripple", 87, Rarity.COMMON, mage.cards.r.RealityRipple.class)); - cards.add(new SetCardInfo("Reckless Embermage", 189, Rarity.RARE, mage.cards.r.RecklessEmbermage.class)); - cards.add(new SetCardInfo("Regeneration", 236, Rarity.COMMON, mage.cards.r.Regeneration.class)); - cards.add(new SetCardInfo("Reign of Chaos", 190, Rarity.UNCOMMON, mage.cards.r.ReignOfChaos.class)); - cards.add(new SetCardInfo("Reparations", 278, Rarity.RARE, mage.cards.r.Reparations.class)); - cards.add(new SetCardInfo("Restless Dead", 138, Rarity.COMMON, mage.cards.r.RestlessDead.class)); - cards.add(new SetCardInfo("Ritual of Steel", 36, Rarity.COMMON, mage.cards.r.RitualOfSteel.class)); - cards.add(new SetCardInfo("Rock Basilisk", 279, Rarity.RARE, mage.cards.r.RockBasilisk.class)); - cards.add(new SetCardInfo("Rocky Tar Pit", 329, Rarity.UNCOMMON, mage.cards.r.RockyTarPit.class)); - cards.add(new SetCardInfo("Roots of Life", 237, Rarity.UNCOMMON, mage.cards.r.RootsOfLife.class)); - cards.add(new SetCardInfo("Sabertooth Cobra", 238, Rarity.COMMON, mage.cards.s.SabertoothCobra.class)); - cards.add(new SetCardInfo("Sacred Mesa", 37, Rarity.RARE, mage.cards.s.SacredMesa.class)); - cards.add(new SetCardInfo("Sandbar Crocodile", 88, Rarity.COMMON, mage.cards.s.SandbarCrocodile.class)); - cards.add(new SetCardInfo("Sandstorm", 239, Rarity.COMMON, mage.cards.s.Sandstorm.class)); - cards.add(new SetCardInfo("Sapphire Charm", 89, Rarity.COMMON, mage.cards.s.SapphireCharm.class)); - cards.add(new SetCardInfo("Savage Twister", 280, Rarity.UNCOMMON, mage.cards.s.SavageTwister.class)); - cards.add(new SetCardInfo("Sawback Manticore", 281, Rarity.RARE, mage.cards.s.SawbackManticore.class)); - cards.add(new SetCardInfo("Sea Scryer", 90, Rarity.COMMON, mage.cards.s.SeaScryer.class)); - cards.add(new SetCardInfo("Searing Spear Askari", 191, Rarity.COMMON, mage.cards.s.SearingSpearAskari.class)); - cards.add(new SetCardInfo("Seedling Charm", 240, Rarity.COMMON, mage.cards.s.SeedlingCharm.class)); - cards.add(new SetCardInfo("Seeds of Innocence", 241, Rarity.RARE, mage.cards.s.SeedsOfInnocence.class)); - cards.add(new SetCardInfo("Serene Heart", 242, Rarity.COMMON, mage.cards.s.SereneHeart.class)); - cards.add(new SetCardInfo("Sewer Rats", 139, Rarity.COMMON, mage.cards.s.SewerRats.class)); - cards.add(new SetCardInfo("Shadow Guildmage", 140, Rarity.COMMON, mage.cards.s.ShadowGuildmage.class)); - cards.add(new SetCardInfo("Shallow Grave", 141, Rarity.RARE, mage.cards.s.ShallowGrave.class)); - cards.add(new SetCardInfo("Shaper Guildmage", 91, Rarity.COMMON, mage.cards.s.ShaperGuildmage.class)); - cards.add(new SetCardInfo("Shauku's Minion", 283, Rarity.UNCOMMON, mage.cards.s.ShaukusMinion.class)); - cards.add(new SetCardInfo("Shauku, Endbringer", 142, Rarity.RARE, mage.cards.s.ShaukuEndbringer.class)); - cards.add(new SetCardInfo("Shimmer", 92, Rarity.RARE, mage.cards.s.Shimmer.class)); - cards.add(new SetCardInfo("Sidar Jabari", 39, Rarity.RARE, mage.cards.s.SidarJabari.class)); - cards.add(new SetCardInfo("Skulking Ghost", 143, Rarity.COMMON, mage.cards.s.SkulkingGhost.class)); - cards.add(new SetCardInfo("Sky Diamond", 319, Rarity.UNCOMMON, mage.cards.s.SkyDiamond.class)); - cards.add(new SetCardInfo("Soar", 93, Rarity.COMMON, mage.cards.s.Soar.class)); - cards.add(new SetCardInfo("Soul Echo", 40, Rarity.RARE, mage.cards.s.SoulEcho.class)); - cards.add(new SetCardInfo("Soul Rend", 144, Rarity.UNCOMMON, mage.cards.s.SoulRend.class)); - cards.add(new SetCardInfo("Spectral Guardian", 41, Rarity.RARE, mage.cards.s.SpectralGuardian.class)); - cards.add(new SetCardInfo("Spirit of the Night", 146, Rarity.RARE, mage.cards.s.SpiritOfTheNight.class)); - cards.add(new SetCardInfo("Spitting Earth", 193, Rarity.COMMON, mage.cards.s.SpittingEarth.class)); - cards.add(new SetCardInfo("Stalking Tiger", 243, Rarity.COMMON, mage.cards.s.StalkingTiger.class)); - cards.add(new SetCardInfo("Stone Rain", 194, Rarity.COMMON, mage.cards.s.StoneRain.class)); - cards.add(new SetCardInfo("Stupor", 147, Rarity.UNCOMMON, mage.cards.s.Stupor.class)); - cards.add(new SetCardInfo("Subterranean Spirit", 195, Rarity.RARE, mage.cards.s.SubterraneanSpirit.class)); - cards.add(new SetCardInfo("Sunweb", 42, Rarity.RARE, mage.cards.s.Sunweb.class)); - cards.add(new SetCardInfo("Superior Numbers", 244, Rarity.UNCOMMON, mage.cards.s.SuperiorNumbers.class)); - cards.add(new SetCardInfo("Suq'Ata Firewalker", 94, Rarity.UNCOMMON, mage.cards.s.SuqAtaFirewalker.class)); - cards.add(new SetCardInfo("Swamp", 339, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Swamp", 340, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Swamp", 341, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Swamp", 342, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Talruum Minotaur", 196, Rarity.COMMON, mage.cards.t.TalruumMinotaur.class)); - cards.add(new SetCardInfo("Taniwha", 95, Rarity.RARE, mage.cards.t.Taniwha.class)); - cards.add(new SetCardInfo("Teeka's Dragon", 320, Rarity.RARE, mage.cards.t.TeekasDragon.class)); - cards.add(new SetCardInfo("Teferi's Curse", 96, Rarity.COMMON, mage.cards.t.TeferisCurse.class)); - cards.add(new SetCardInfo("Teferi's Drake", 97, Rarity.COMMON, mage.cards.t.TeferisDrake.class)); - cards.add(new SetCardInfo("Teferi's Isle", 330, Rarity.RARE, mage.cards.t.TeferisIsle.class)); - cards.add(new SetCardInfo("Telim'Tor", 197, Rarity.RARE, mage.cards.t.TelimTor.class)); - cards.add(new SetCardInfo("Telim'Tor's Darts", 321, Rarity.UNCOMMON, mage.cards.t.TelimTorsDarts.class)); - cards.add(new SetCardInfo("Telim'Tor's Edict", 198, Rarity.RARE, mage.cards.t.TelimTorsEdict.class)); - cards.add(new SetCardInfo("Teremko Griffin", 43, Rarity.COMMON, mage.cards.t.TeremkoGriffin.class)); - cards.add(new SetCardInfo("Thirst", 99, Rarity.COMMON, mage.cards.t.Thirst.class)); - cards.add(new SetCardInfo("Tidal Wave", 100, Rarity.UNCOMMON, mage.cards.t.TidalWave.class)); - cards.add(new SetCardInfo("Tombstone Stairwell", 149, Rarity.RARE, mage.cards.t.TombstoneStairwell.class)); - cards.add(new SetCardInfo("Tranquil Domain", 245, Rarity.COMMON, mage.cards.t.TranquilDomain.class)); - cards.add(new SetCardInfo("Tropical Storm", 246, Rarity.UNCOMMON, mage.cards.t.TropicalStorm.class)); - cards.add(new SetCardInfo("Uktabi Faerie", 247, Rarity.COMMON, mage.cards.u.UktabiFaerie.class)); - cards.add(new SetCardInfo("Uktabi Wildcats", 248, Rarity.RARE, mage.cards.u.UktabiWildcats.class)); - cards.add(new SetCardInfo("Unfulfilled Desires", 285, Rarity.RARE, mage.cards.u.UnfulfilledDesires.class)); - cards.add(new SetCardInfo("Unseen Walker", 249, Rarity.UNCOMMON, mage.cards.u.UnseenWalker.class)); - cards.add(new SetCardInfo("Unyaro Bee Sting", 250, Rarity.UNCOMMON, mage.cards.u.UnyaroBeeSting.class)); - cards.add(new SetCardInfo("Unyaro Griffin", 44, Rarity.UNCOMMON, mage.cards.u.UnyaroGriffin.class)); - cards.add(new SetCardInfo("Vaporous Djinn", 101, Rarity.UNCOMMON, mage.cards.v.VaporousDjinn.class)); - cards.add(new SetCardInfo("Ventifact Bottle", 323, Rarity.RARE, mage.cards.v.VentifactBottle.class)); - cards.add(new SetCardInfo("Viashino Warrior", 200, Rarity.COMMON, mage.cards.v.ViashinoWarrior.class)); - cards.add(new SetCardInfo("Vigilant Martyr", 45, Rarity.UNCOMMON, mage.cards.v.VigilantMartyr.class)); - cards.add(new SetCardInfo("Village Elder", 251, Rarity.COMMON, mage.cards.v.VillageElder.class)); - cards.add(new SetCardInfo("Vitalizing Cascade", 286, Rarity.UNCOMMON, mage.cards.v.VitalizingCascade.class)); - cards.add(new SetCardInfo("Volcanic Dragon", 201, Rarity.RARE, mage.cards.v.VolcanicDragon.class)); - cards.add(new SetCardInfo("Volcanic Geyser", 202, Rarity.UNCOMMON, mage.cards.v.VolcanicGeyser.class)); - cards.add(new SetCardInfo("Waiting in the Weeds", 252, Rarity.RARE, mage.cards.w.WaitingInTheWeeds.class)); - cards.add(new SetCardInfo("Wall of Roots", 253, Rarity.COMMON, mage.cards.w.WallOfRoots.class)); - cards.add(new SetCardInfo("Ward of Lights", 47, Rarity.COMMON, mage.cards.w.WardOfLights.class)); - cards.add(new SetCardInfo("Warping Wurm", 287, Rarity.RARE, mage.cards.w.WarpingWurm.class)); - cards.add(new SetCardInfo("Wave Elemental", 102, Rarity.UNCOMMON, mage.cards.w.WaveElemental.class)); - cards.add(new SetCardInfo("Wild Elephant", 254, Rarity.COMMON, mage.cards.w.WildElephant.class)); - cards.add(new SetCardInfo("Wildfire Emissary", 203, Rarity.UNCOMMON, mage.cards.w.WildfireEmissary.class)); - cards.add(new SetCardInfo("Windreaper Falcon", 289, Rarity.UNCOMMON, mage.cards.w.WindreaperFalcon.class)); - cards.add(new SetCardInfo("Withering Boon", 152, Rarity.UNCOMMON, mage.cards.w.WitheringBoon.class)); - cards.add(new SetCardInfo("Worldly Tutor", 255, Rarity.UNCOMMON, mage.cards.w.WorldlyTutor.class)); - cards.add(new SetCardInfo("Zebra Unicorn", 290, Rarity.UNCOMMON, mage.cards.z.ZebraUnicorn.class)); - cards.add(new SetCardInfo("Zhalfirin Commander", 49, Rarity.UNCOMMON, mage.cards.z.ZhalfirinCommander.class)); - cards.add(new SetCardInfo("Zhalfirin Knight", 50, Rarity.COMMON, mage.cards.z.ZhalfirinKnight.class)); - cards.add(new SetCardInfo("Zirilan of the Claw", 204, Rarity.RARE, mage.cards.z.ZirilanOfTheClaw.class)); - cards.add(new SetCardInfo("Zombie Mob", 153, Rarity.UNCOMMON, mage.cards.z.ZombieMob.class)); - cards.add(new SetCardInfo("Zuberi, Golden Feather", 51, Rarity.RARE, mage.cards.z.ZuberiGoldenFeather.class)); - } +package mage.sets; + +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; + +/** + * @author North + */ +public final class Mirage extends ExpansionSet { + + private static final Mirage instance = new Mirage(); + + public static Mirage getInstance() { + return instance; + } + + private Mirage() { + super("Mirage", "MIR", ExpansionSet.buildDate(1996, 8, 21), SetType.EXPANSION); + this.blockName = "Mirage"; + this.hasBoosters = true; + this.numBoosterLands = 0; + this.numBoosterCommon = 11; + this.numBoosterUncommon = 3; + this.numBoosterRare = 1; + this.ratioBoosterMythic = 0; + + cards.add(new SetCardInfo("Abyssal Hunter", 103, Rarity.RARE, mage.cards.a.AbyssalHunter.class)); + cards.add(new SetCardInfo("Afiya Grove", 205, Rarity.RARE, mage.cards.a.AfiyaGrove.class)); + cards.add(new SetCardInfo("Afterlife", 1, Rarity.UNCOMMON, mage.cards.a.Afterlife.class)); + cards.add(new SetCardInfo("Agility", 154, Rarity.COMMON, mage.cards.a.Agility.class)); + cards.add(new SetCardInfo("Alarum", 2, Rarity.COMMON, mage.cards.a.Alarum.class)); + cards.add(new SetCardInfo("Aleatory", 155, Rarity.UNCOMMON, mage.cards.a.Aleatory.class)); + cards.add(new SetCardInfo("Amber Prison", 292, Rarity.RARE, mage.cards.a.AmberPrison.class)); + cards.add(new SetCardInfo("Amulet of Unmaking", 293, Rarity.RARE, mage.cards.a.AmuletOfUnmaking.class)); + cards.add(new SetCardInfo("Ancestral Memories", 52, Rarity.RARE, mage.cards.a.AncestralMemories.class)); + cards.add(new SetCardInfo("Armor of Thorns", 206, Rarity.COMMON, mage.cards.a.ArmorOfThorns.class)); + cards.add(new SetCardInfo("Armorer Guildmage", 156, Rarity.COMMON, mage.cards.a.ArmorerGuildmage.class)); + cards.add(new SetCardInfo("Ashen Powder", 104, Rarity.RARE, mage.cards.a.AshenPowder.class)); + cards.add(new SetCardInfo("Asmira, Holy Avenger", 256, Rarity.RARE, mage.cards.a.AsmiraHolyAvenger.class)); + cards.add(new SetCardInfo("Auspicious Ancestor", 3, Rarity.RARE, mage.cards.a.AuspiciousAncestor.class)); + cards.add(new SetCardInfo("Azimaet Drake", 53, Rarity.COMMON, mage.cards.a.AzimaetDrake.class)); + cards.add(new SetCardInfo("Bad River", 324, Rarity.UNCOMMON, mage.cards.b.BadRiver.class)); + cards.add(new SetCardInfo("Barbed Foliage", 207, Rarity.UNCOMMON, mage.cards.b.BarbedFoliage.class)); + cards.add(new SetCardInfo("Barbed-Back Wurm", 105, Rarity.UNCOMMON, mage.cards.b.BarbedBackWurm.class)); + cards.add(new SetCardInfo("Bay Falcon", 54, Rarity.COMMON, mage.cards.b.BayFalcon.class)); + cards.add(new SetCardInfo("Bazaar of Wonders", 55, Rarity.RARE, mage.cards.b.BazaarOfWonders.class)); + cards.add(new SetCardInfo("Benthic Djinn", 257, Rarity.RARE, mage.cards.b.BenthicDjinn.class)); + cards.add(new SetCardInfo("Binding Agony", 106, Rarity.COMMON, mage.cards.b.BindingAgony.class)); + cards.add(new SetCardInfo("Blighted Shaman", 107, Rarity.UNCOMMON, mage.cards.b.BlightedShaman.class)); + cards.add(new SetCardInfo("Blinding Light", 5, Rarity.UNCOMMON, mage.cards.b.BlindingLight.class)); + cards.add(new SetCardInfo("Blistering Barrier", 159, Rarity.COMMON, mage.cards.b.BlisteringBarrier.class)); + cards.add(new SetCardInfo("Bone Harvest", 108, Rarity.COMMON, mage.cards.b.BoneHarvest.class)); + cards.add(new SetCardInfo("Boomerang", 56, Rarity.COMMON, mage.cards.b.Boomerang.class)); + cards.add(new SetCardInfo("Breathstealer", 109, Rarity.COMMON, mage.cards.b.Breathstealer.class)); + cards.add(new SetCardInfo("Brushwagg", 208, Rarity.RARE, mage.cards.b.Brushwagg.class)); + cards.add(new SetCardInfo("Builder's Bane", 160, Rarity.COMMON, mage.cards.b.BuildersBane.class)); + cards.add(new SetCardInfo("Burning Palm Efreet", 161, Rarity.UNCOMMON, mage.cards.b.BurningPalmEfreet.class)); + cards.add(new SetCardInfo("Burning Shield Askari", 162, Rarity.COMMON, mage.cards.b.BurningShieldAskari.class)); + cards.add(new SetCardInfo("Cadaverous Bloom", 258, Rarity.RARE, mage.cards.c.CadaverousBloom.class)); + cards.add(new SetCardInfo("Cadaverous Knight", 110, Rarity.COMMON, mage.cards.c.CadaverousKnight.class)); + cards.add(new SetCardInfo("Canopy Dragon", 209, Rarity.RARE, mage.cards.c.CanopyDragon.class)); + cards.add(new SetCardInfo("Carrion", 111, Rarity.RARE, mage.cards.c.Carrion.class)); + cards.add(new SetCardInfo("Catacomb Dragon", 112, Rarity.RARE, mage.cards.c.CatacombDragon.class)); + cards.add(new SetCardInfo("Celestial Dawn", 6, Rarity.RARE, mage.cards.c.CelestialDawn.class)); + cards.add(new SetCardInfo("Cerulean Wyvern", 57, Rarity.UNCOMMON, mage.cards.c.CeruleanWyvern.class)); + cards.add(new SetCardInfo("Chaos Charm", 163, Rarity.COMMON, mage.cards.c.ChaosCharm.class)); + cards.add(new SetCardInfo("Chaosphere", 164, Rarity.RARE, mage.cards.c.Chaosphere.class)); + cards.add(new SetCardInfo("Charcoal Diamond", 296, Rarity.UNCOMMON, mage.cards.c.CharcoalDiamond.class)); + cards.add(new SetCardInfo("Chariot of the Sun", 262, Rarity.UNCOMMON, mage.cards.c.ChariotOfTheSun.class)); + cards.add(new SetCardInfo("Choking Sands", 113, Rarity.COMMON, mage.cards.c.ChokingSands.class)); + cards.add(new SetCardInfo("Cinder Cloud", 165, Rarity.UNCOMMON, mage.cards.c.CinderCloud.class)); + cards.add(new SetCardInfo("Civic Guildmage", 7, Rarity.COMMON, mage.cards.c.CivicGuildmage.class)); + cards.add(new SetCardInfo("Cloak of Invisibility", 58, Rarity.COMMON, mage.cards.c.CloakOfInvisibility.class)); + cards.add(new SetCardInfo("Consuming Ferocity", 166, Rarity.UNCOMMON, mage.cards.c.ConsumingFerocity.class)); + cards.add(new SetCardInfo("Coral Fighters", 59, Rarity.UNCOMMON, mage.cards.c.CoralFighters.class)); + cards.add(new SetCardInfo("Crash of Rhinos", 210, Rarity.COMMON, mage.cards.c.CrashOfRhinos.class)); + cards.add(new SetCardInfo("Crimson Hellkite", 167, Rarity.RARE, mage.cards.c.CrimsonHellkite.class)); + cards.add(new SetCardInfo("Crypt Cobra", 114, Rarity.UNCOMMON, mage.cards.c.CryptCobra.class)); + cards.add(new SetCardInfo("Crystal Golem", 298, Rarity.UNCOMMON, mage.cards.c.CrystalGolem.class)); + cards.add(new SetCardInfo("Crystal Vein", 325, Rarity.UNCOMMON, mage.cards.c.CrystalVein.class)); + cards.add(new SetCardInfo("Cursed Totem", 299, Rarity.RARE, mage.cards.c.CursedTotem.class)); + cards.add(new SetCardInfo("Daring Apprentice", 60, Rarity.RARE, mage.cards.d.DaringApprentice.class)); + cards.add(new SetCardInfo("Dark Banishing", 115, Rarity.COMMON, mage.cards.d.DarkBanishing.class)); + cards.add(new SetCardInfo("Dark Ritual", 116, Rarity.COMMON, mage.cards.d.DarkRitual.class)); + cards.add(new SetCardInfo("Dazzling Beauty", 8, Rarity.COMMON, mage.cards.d.DazzlingBeauty.class)); + cards.add(new SetCardInfo("Delirium", 260, Rarity.UNCOMMON, mage.cards.d.Delirium.class)); + cards.add(new SetCardInfo("Dirtwater Wraith", 117, Rarity.COMMON, mage.cards.d.DirtwaterWraith.class)); + cards.add(new SetCardInfo("Disempower", 9, Rarity.COMMON, mage.cards.d.Disempower.class)); + cards.add(new SetCardInfo("Disenchant", 10, Rarity.COMMON, mage.cards.d.Disenchant.class)); + cards.add(new SetCardInfo("Dissipate", 61, Rarity.UNCOMMON, mage.cards.d.Dissipate.class)); + cards.add(new SetCardInfo("Divine Offering", 11, Rarity.COMMON, mage.cards.d.DivineOffering.class)); + cards.add(new SetCardInfo("Divine Retribution", 12, Rarity.RARE, mage.cards.d.DivineRetribution.class)); + cards.add(new SetCardInfo("Drain Life", 118, Rarity.COMMON, mage.cards.d.DrainLife.class)); + cards.add(new SetCardInfo("Dread Specter", 119, Rarity.UNCOMMON, mage.cards.d.DreadSpecter.class)); + cards.add(new SetCardInfo("Dream Cache", 62, Rarity.COMMON, mage.cards.d.DreamCache.class)); + cards.add(new SetCardInfo("Dwarven Miner", 169, Rarity.UNCOMMON, mage.cards.d.DwarvenMiner.class)); + cards.add(new SetCardInfo("Dwarven Nomad", 170, Rarity.COMMON, mage.cards.d.DwarvenNomad.class)); + cards.add(new SetCardInfo("Early Harvest", 213, Rarity.RARE, mage.cards.e.EarlyHarvest.class)); + cards.add(new SetCardInfo("Ebony Charm", 120, Rarity.COMMON, mage.cards.e.EbonyCharm.class)); + cards.add(new SetCardInfo("Ekundu Griffin", 13, Rarity.COMMON, mage.cards.e.EkunduGriffin.class)); + cards.add(new SetCardInfo("Elixir of Vitality", 300, Rarity.UNCOMMON, mage.cards.e.ElixirOfVitality.class)); + cards.add(new SetCardInfo("Emberwilde Caliph", 322, Rarity.RARE, mage.cards.e.EmberwildeCaliph.class)); + cards.add(new SetCardInfo("Emberwilde Djinn", 172, Rarity.RARE, mage.cards.e.EmberwildeDjinn.class)); + cards.add(new SetCardInfo("Energy Bolt", 263, Rarity.RARE, mage.cards.e.EnergyBolt.class)); + cards.add(new SetCardInfo("Energy Vortex", 64, Rarity.RARE, mage.cards.e.EnergyVortex.class)); + cards.add(new SetCardInfo("Enfeeblement", 121, Rarity.COMMON, mage.cards.e.Enfeeblement.class)); + cards.add(new SetCardInfo("Enlightened Tutor", 14, Rarity.UNCOMMON, mage.cards.e.EnlightenedTutor.class)); + cards.add(new SetCardInfo("Ersatz Gnomes", 301, Rarity.UNCOMMON, mage.cards.e.ErsatzGnomes.class)); + cards.add(new SetCardInfo("Ether Well", 65, Rarity.UNCOMMON, mage.cards.e.EtherWell.class)); + cards.add(new SetCardInfo("Ethereal Champion", 15, Rarity.RARE, mage.cards.e.EtherealChampion.class)); + cards.add(new SetCardInfo("Fallow Earth", 214, Rarity.UNCOMMON, mage.cards.f.FallowEarth.class)); + cards.add(new SetCardInfo("Favorable Destiny", 16, Rarity.UNCOMMON, mage.cards.f.FavorableDestiny.class)); + cards.add(new SetCardInfo("Femeref Archers", 215, Rarity.UNCOMMON, mage.cards.f.FemerefArchers.class)); + cards.add(new SetCardInfo("Femeref Healer", 17, Rarity.COMMON, mage.cards.f.FemerefHealer.class)); + cards.add(new SetCardInfo("Femeref Knight", 18, Rarity.COMMON, mage.cards.f.FemerefKnight.class)); + cards.add(new SetCardInfo("Femeref Scouts", 19, Rarity.COMMON, mage.cards.f.FemerefScouts.class)); + cards.add(new SetCardInfo("Feral Shadow", 122, Rarity.COMMON, mage.cards.f.FeralShadow.class)); + cards.add(new SetCardInfo("Fetid Horror", 123, Rarity.COMMON, mage.cards.f.FetidHorror.class)); + cards.add(new SetCardInfo("Final Fortune", 173, Rarity.RARE, mage.cards.f.FinalFortune.class)); + cards.add(new SetCardInfo("Fire Diamond", 302, Rarity.UNCOMMON, mage.cards.f.FireDiamond.class)); + cards.add(new SetCardInfo("Firebreathing", 174, Rarity.COMMON, mage.cards.f.Firebreathing.class)); + cards.add(new SetCardInfo("Flame Elemental", 175, Rarity.UNCOMMON, mage.cards.f.FlameElemental.class)); + cards.add(new SetCardInfo("Flare", 176, Rarity.COMMON, mage.cards.f.Flare.class)); + cards.add(new SetCardInfo("Flash", 66, Rarity.RARE, mage.cards.f.Flash.class)); + cards.add(new SetCardInfo("Flood Plain", 326, Rarity.UNCOMMON, mage.cards.f.FloodPlain.class)); + cards.add(new SetCardInfo("Floodgate", 67, Rarity.UNCOMMON, mage.cards.f.Floodgate.class)); + cards.add(new SetCardInfo("Fog", 216, Rarity.COMMON, mage.cards.f.Fog.class)); + cards.add(new SetCardInfo("Foratog", 217, Rarity.UNCOMMON, mage.cards.f.Foratog.class)); + cards.add(new SetCardInfo("Forbidden Crypt", 124, Rarity.RARE, mage.cards.f.ForbiddenCrypt.class)); + cards.add(new SetCardInfo("Forest", 347, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Forest", 348, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Forest", 349, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Forest", 350, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Forsaken Wastes", 125, Rarity.RARE, mage.cards.f.ForsakenWastes.class)); + cards.add(new SetCardInfo("Frenetic Efreet", 264, Rarity.RARE, mage.cards.f.FreneticEfreet.class)); + cards.add(new SetCardInfo("Giant Mantis", 218, Rarity.COMMON, mage.cards.g.GiantMantis.class)); + cards.add(new SetCardInfo("Gibbering Hyenas", 219, Rarity.COMMON, mage.cards.g.GibberingHyenas.class)); + cards.add(new SetCardInfo("Goblin Elite Infantry", 177, Rarity.COMMON, mage.cards.g.GoblinEliteInfantry.class)); + cards.add(new SetCardInfo("Goblin Scouts", 178, Rarity.UNCOMMON, mage.cards.g.GoblinScouts.class)); + cards.add(new SetCardInfo("Goblin Soothsayer", 179, Rarity.UNCOMMON, mage.cards.g.GoblinSoothsayer.class)); + cards.add(new SetCardInfo("Goblin Tinkerer", 180, Rarity.COMMON, mage.cards.g.GoblinTinkerer.class)); + cards.add(new SetCardInfo("Granger Guildmage", 220, Rarity.COMMON, mage.cards.g.GrangerGuildmage.class)); + cards.add(new SetCardInfo("Grasslands", 327, Rarity.UNCOMMON, mage.cards.g.Grasslands.class)); + cards.add(new SetCardInfo("Grave Servitude", 126, Rarity.COMMON, mage.cards.g.GraveServitude.class)); + cards.add(new SetCardInfo("Gravebane Zombie", 127, Rarity.COMMON, mage.cards.g.GravebaneZombie.class)); + cards.add(new SetCardInfo("Grim Feast", 265, Rarity.RARE, mage.cards.g.GrimFeast.class)); + cards.add(new SetCardInfo("Grinning Totem", 303, Rarity.RARE, mage.cards.g.GrinningTotem.class)); + cards.add(new SetCardInfo("Hakim, Loreweaver", 68, Rarity.RARE, mage.cards.h.HakimLoreweaver.class)); + cards.add(new SetCardInfo("Hall of Gemstone", 221, Rarity.RARE, mage.cards.h.HallOfGemstone.class)); + cards.add(new SetCardInfo("Hammer of Bogardan", 181, Rarity.RARE, mage.cards.h.HammerOfBogardan.class)); + cards.add(new SetCardInfo("Harbinger of Night", 128, Rarity.RARE, mage.cards.h.HarbingerOfNight.class)); + cards.add(new SetCardInfo("Harbor Guardian", 266, Rarity.UNCOMMON, mage.cards.h.HarborGuardian.class)); + cards.add(new SetCardInfo("Harmattan Efreet", 69, Rarity.UNCOMMON, mage.cards.h.HarmattanEfreet.class)); + cards.add(new SetCardInfo("Hazerider Drake", 268, Rarity.UNCOMMON, mage.cards.h.HazeriderDrake.class)); + cards.add(new SetCardInfo("Healing Salve", 20, Rarity.COMMON, mage.cards.h.HealingSalve.class)); + cards.add(new SetCardInfo("Hivis of the Scale", 182, Rarity.RARE, mage.cards.h.HivisOfTheScale.class)); + cards.add(new SetCardInfo("Horrible Hordes", 304, Rarity.UNCOMMON, mage.cards.h.HorribleHordes.class)); + cards.add(new SetCardInfo("Igneous Golem", 305, Rarity.UNCOMMON, mage.cards.i.IgneousGolem.class)); + cards.add(new SetCardInfo("Illicit Auction", 183, Rarity.RARE, mage.cards.i.IllicitAuction.class)); + cards.add(new SetCardInfo("Illumination", 21, Rarity.UNCOMMON, mage.cards.i.Illumination.class)); + cards.add(new SetCardInfo("Incinerate", 184, Rarity.COMMON, mage.cards.i.Incinerate.class)); + cards.add(new SetCardInfo("Infernal Contract", 129, Rarity.RARE, mage.cards.i.InfernalContract.class)); + cards.add(new SetCardInfo("Iron Tusk Elephant", 22, Rarity.UNCOMMON, mage.cards.i.IronTuskElephant.class)); + cards.add(new SetCardInfo("Island", 335, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Island", 336, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Island", 337, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Island", 338, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Ivory Charm", 23, Rarity.COMMON, mage.cards.i.IvoryCharm.class)); + cards.add(new SetCardInfo("Jolrael's Centaur", 222, Rarity.COMMON, mage.cards.j.JolraelsCentaur.class)); + cards.add(new SetCardInfo("Jolt", 70, Rarity.COMMON, mage.cards.j.Jolt.class)); + cards.add(new SetCardInfo("Jungle Patrol", 223, Rarity.RARE, mage.cards.j.JunglePatrol.class)); + cards.add(new SetCardInfo("Jungle Troll", 269, Rarity.UNCOMMON, mage.cards.j.JungleTroll.class)); + cards.add(new SetCardInfo("Jungle Wurm", 224, Rarity.COMMON, mage.cards.j.JungleWurm.class)); + cards.add(new SetCardInfo("Kaervek's Hex", 130, Rarity.UNCOMMON, mage.cards.k.KaerveksHex.class)); + cards.add(new SetCardInfo("Kaervek's Purge", 270, Rarity.UNCOMMON, mage.cards.k.KaerveksPurge.class)); + cards.add(new SetCardInfo("Kaervek's Torch", 185, Rarity.COMMON, mage.cards.k.KaerveksTorch.class)); + cards.add(new SetCardInfo("Karoo Meerkat", 225, Rarity.UNCOMMON, mage.cards.k.KarooMeerkat.class)); + cards.add(new SetCardInfo("Kukemssa Pirates", 71, Rarity.RARE, mage.cards.k.KukemssaPirates.class)); + cards.add(new SetCardInfo("Kukemssa Serpent", 72, Rarity.COMMON, mage.cards.k.KukemssaSerpent.class)); + cards.add(new SetCardInfo("Lead Golem", 306, Rarity.UNCOMMON, mage.cards.l.LeadGolem.class)); + cards.add(new SetCardInfo("Leering Gargoyle", 271, Rarity.RARE, mage.cards.l.LeeringGargoyle.class)); + cards.add(new SetCardInfo("Lightning Reflexes", 186, Rarity.COMMON, mage.cards.l.LightningReflexes.class)); + cards.add(new SetCardInfo("Lion's Eye Diamond", 307, Rarity.RARE, mage.cards.l.LionsEyeDiamond.class)); + cards.add(new SetCardInfo("Locust Swarm", 226, Rarity.UNCOMMON, mage.cards.l.LocustSwarm.class)); + cards.add(new SetCardInfo("Lure of Prey", 227, Rarity.RARE, mage.cards.l.LureOfPrey.class)); + cards.add(new SetCardInfo("Malignant Growth", 272, Rarity.RARE, mage.cards.m.MalignantGrowth.class)); + cards.add(new SetCardInfo("Mana Prism", 308, Rarity.UNCOMMON, mage.cards.m.ManaPrism.class)); + cards.add(new SetCardInfo("Mangara's Tome", 309, Rarity.RARE, mage.cards.m.MangarasTome.class)); + cards.add(new SetCardInfo("Marble Diamond", 310, Rarity.UNCOMMON, mage.cards.m.MarbleDiamond.class)); + cards.add(new SetCardInfo("Maro", 228, Rarity.RARE, mage.cards.m.Maro.class)); + cards.add(new SetCardInfo("Melesse Spirit", 27, Rarity.UNCOMMON, mage.cards.m.MelesseSpirit.class)); + cards.add(new SetCardInfo("Memory Lapse", 74, Rarity.COMMON, mage.cards.m.MemoryLapse.class)); + cards.add(new SetCardInfo("Merfolk Raiders", 75, Rarity.COMMON, mage.cards.m.MerfolkRaiders.class)); + cards.add(new SetCardInfo("Merfolk Seer", 76, Rarity.COMMON, mage.cards.m.MerfolkSeer.class)); + cards.add(new SetCardInfo("Mind Harness", 78, Rarity.UNCOMMON, mage.cards.m.MindHarness.class)); + cards.add(new SetCardInfo("Mire Shade", 131, Rarity.UNCOMMON, mage.cards.m.MireShade.class)); + cards.add(new SetCardInfo("Misers' Cage", 311, Rarity.RARE, mage.cards.m.MisersCage.class)); + cards.add(new SetCardInfo("Mist Dragon", 79, Rarity.RARE, mage.cards.m.MistDragon.class)); + cards.add(new SetCardInfo("Moss Diamond", 312, Rarity.UNCOMMON, mage.cards.m.MossDiamond.class)); + cards.add(new SetCardInfo("Mountain Valley", 328, Rarity.UNCOMMON, mage.cards.m.MountainValley.class)); + cards.add(new SetCardInfo("Mountain", 343, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Mountain", 344, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Mountain", 345, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Mountain", 346, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Mtenda Griffin", 28, Rarity.UNCOMMON, mage.cards.m.MtendaGriffin.class)); + cards.add(new SetCardInfo("Mtenda Herder", 29, Rarity.COMMON, mage.cards.m.MtendaHerder.class)); + cards.add(new SetCardInfo("Mystical Tutor", 80, Rarity.UNCOMMON, mage.cards.m.MysticalTutor.class)); + cards.add(new SetCardInfo("Natural Balance", 231, Rarity.RARE, mage.cards.n.NaturalBalance.class)); + cards.add(new SetCardInfo("Nettletooth Djinn", 232, Rarity.UNCOMMON, mage.cards.n.NettletoothDjinn.class)); + cards.add(new SetCardInfo("Noble Elephant", 30, Rarity.COMMON, mage.cards.n.NobleElephant.class)); + cards.add(new SetCardInfo("Nocturnal Raid", 132, Rarity.UNCOMMON, mage.cards.n.NocturnalRaid.class)); + cards.add(new SetCardInfo("Null Chamber", 31, Rarity.RARE, mage.cards.n.NullChamber.class)); + cards.add(new SetCardInfo("Pacifism", 32, Rarity.COMMON, mage.cards.p.Pacifism.class)); + cards.add(new SetCardInfo("Painful Memories", 133, Rarity.UNCOMMON, mage.cards.p.PainfulMemories.class)); + cards.add(new SetCardInfo("Patagia Golem", 313, Rarity.UNCOMMON, mage.cards.p.PatagiaGolem.class)); + cards.add(new SetCardInfo("Paupers' Cage", 314, Rarity.RARE, mage.cards.p.PaupersCage.class)); + cards.add(new SetCardInfo("Pearl Dragon", 33, Rarity.RARE, mage.cards.p.PearlDragon.class)); + cards.add(new SetCardInfo("Phyrexian Dreadnought", 315, Rarity.RARE, mage.cards.p.PhyrexianDreadnought.class)); + cards.add(new SetCardInfo("Phyrexian Purge", 273, Rarity.RARE, mage.cards.p.PhyrexianPurge.class)); + cards.add(new SetCardInfo("Phyrexian Tribute", 134, Rarity.RARE, mage.cards.p.PhyrexianTribute.class)); + cards.add(new SetCardInfo("Phyrexian Vault", 316, Rarity.UNCOMMON, mage.cards.p.PhyrexianVault.class)); + cards.add(new SetCardInfo("Plains", 331, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Plains", 332, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Plains", 333, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Plains", 334, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Political Trickery", 81, Rarity.RARE, mage.cards.p.PoliticalTrickery.class)); + cards.add(new SetCardInfo("Polymorph", 82, Rarity.RARE, mage.cards.p.Polymorph.class)); + cards.add(new SetCardInfo("Power Sink", 83, Rarity.COMMON, mage.cards.p.PowerSink.class)); + cards.add(new SetCardInfo("Prismatic Boon", 274, Rarity.UNCOMMON, mage.cards.p.PrismaticBoon.class)); + cards.add(new SetCardInfo("Prismatic Circle", 34, Rarity.COMMON, mage.cards.p.PrismaticCircle.class)); + cards.add(new SetCardInfo("Prismatic Lace", 84, Rarity.RARE, mage.cards.p.PrismaticLace.class)); + cards.add(new SetCardInfo("Psychic Transfer", 85, Rarity.RARE, mage.cards.p.PsychicTransfer.class)); + cards.add(new SetCardInfo("Purgatory", 275, Rarity.RARE, mage.cards.p.Purgatory.class)); + cards.add(new SetCardInfo("Purraj of Urborg", 135, Rarity.RARE, mage.cards.p.PurrajOfUrborg.class)); + cards.add(new SetCardInfo("Pyric Salamander", 187, Rarity.COMMON, mage.cards.p.PyricSalamander.class)); + cards.add(new SetCardInfo("Quirion Elves", 234, Rarity.COMMON, mage.cards.q.QuirionElves.class)); + cards.add(new SetCardInfo("Radiant Essence", 276, Rarity.UNCOMMON, mage.cards.r.RadiantEssence.class)); + cards.add(new SetCardInfo("Raging Spirit", 188, Rarity.COMMON, mage.cards.r.RagingSpirit.class)); + cards.add(new SetCardInfo("Rampant Growth", 235, Rarity.COMMON, mage.cards.r.RampantGrowth.class)); + cards.add(new SetCardInfo("Rashida Scalebane", 35, Rarity.RARE, mage.cards.r.RashidaScalebane.class)); + cards.add(new SetCardInfo("Ravenous Vampire", 136, Rarity.UNCOMMON, mage.cards.r.RavenousVampire.class)); + cards.add(new SetCardInfo("Ray of Command", 86, Rarity.COMMON, mage.cards.r.RayOfCommand.class)); + cards.add(new SetCardInfo("Razor Pendulum", 317, Rarity.RARE, mage.cards.r.RazorPendulum.class)); + cards.add(new SetCardInfo("Reality Ripple", 87, Rarity.COMMON, mage.cards.r.RealityRipple.class)); + cards.add(new SetCardInfo("Reckless Embermage", 189, Rarity.RARE, mage.cards.r.RecklessEmbermage.class)); + cards.add(new SetCardInfo("Regeneration", 236, Rarity.COMMON, mage.cards.r.Regeneration.class)); + cards.add(new SetCardInfo("Reign of Chaos", 190, Rarity.UNCOMMON, mage.cards.r.ReignOfChaos.class)); + cards.add(new SetCardInfo("Reparations", 278, Rarity.RARE, mage.cards.r.Reparations.class)); + cards.add(new SetCardInfo("Restless Dead", 138, Rarity.COMMON, mage.cards.r.RestlessDead.class)); + cards.add(new SetCardInfo("Ritual of Steel", 36, Rarity.COMMON, mage.cards.r.RitualOfSteel.class)); + cards.add(new SetCardInfo("Rock Basilisk", 279, Rarity.RARE, mage.cards.r.RockBasilisk.class)); + cards.add(new SetCardInfo("Rocky Tar Pit", 329, Rarity.UNCOMMON, mage.cards.r.RockyTarPit.class)); + cards.add(new SetCardInfo("Roots of Life", 237, Rarity.UNCOMMON, mage.cards.r.RootsOfLife.class)); + cards.add(new SetCardInfo("Sabertooth Cobra", 238, Rarity.COMMON, mage.cards.s.SabertoothCobra.class)); + cards.add(new SetCardInfo("Sacred Mesa", 37, Rarity.RARE, mage.cards.s.SacredMesa.class)); + cards.add(new SetCardInfo("Sandbar Crocodile", 88, Rarity.COMMON, mage.cards.s.SandbarCrocodile.class)); + cards.add(new SetCardInfo("Sandstorm", 239, Rarity.COMMON, mage.cards.s.Sandstorm.class)); + cards.add(new SetCardInfo("Sapphire Charm", 89, Rarity.COMMON, mage.cards.s.SapphireCharm.class)); + cards.add(new SetCardInfo("Savage Twister", 280, Rarity.UNCOMMON, mage.cards.s.SavageTwister.class)); + cards.add(new SetCardInfo("Sawback Manticore", 281, Rarity.RARE, mage.cards.s.SawbackManticore.class)); + cards.add(new SetCardInfo("Sea Scryer", 90, Rarity.COMMON, mage.cards.s.SeaScryer.class)); + cards.add(new SetCardInfo("Searing Spear Askari", 191, Rarity.COMMON, mage.cards.s.SearingSpearAskari.class)); + cards.add(new SetCardInfo("Seedling Charm", 240, Rarity.COMMON, mage.cards.s.SeedlingCharm.class)); + cards.add(new SetCardInfo("Seeds of Innocence", 241, Rarity.RARE, mage.cards.s.SeedsOfInnocence.class)); + cards.add(new SetCardInfo("Serene Heart", 242, Rarity.COMMON, mage.cards.s.SereneHeart.class)); + cards.add(new SetCardInfo("Sewer Rats", 139, Rarity.COMMON, mage.cards.s.SewerRats.class)); + cards.add(new SetCardInfo("Shadow Guildmage", 140, Rarity.COMMON, mage.cards.s.ShadowGuildmage.class)); + cards.add(new SetCardInfo("Shallow Grave", 141, Rarity.RARE, mage.cards.s.ShallowGrave.class)); + cards.add(new SetCardInfo("Shaper Guildmage", 91, Rarity.COMMON, mage.cards.s.ShaperGuildmage.class)); + cards.add(new SetCardInfo("Shauku's Minion", 283, Rarity.UNCOMMON, mage.cards.s.ShaukusMinion.class)); + cards.add(new SetCardInfo("Shauku, Endbringer", 142, Rarity.RARE, mage.cards.s.ShaukuEndbringer.class)); + cards.add(new SetCardInfo("Shimmer", 92, Rarity.RARE, mage.cards.s.Shimmer.class)); + cards.add(new SetCardInfo("Sidar Jabari", 39, Rarity.RARE, mage.cards.s.SidarJabari.class)); + cards.add(new SetCardInfo("Skulking Ghost", 143, Rarity.COMMON, mage.cards.s.SkulkingGhost.class)); + cards.add(new SetCardInfo("Sky Diamond", 319, Rarity.UNCOMMON, mage.cards.s.SkyDiamond.class)); + cards.add(new SetCardInfo("Soar", 93, Rarity.COMMON, mage.cards.s.Soar.class)); + cards.add(new SetCardInfo("Soul Echo", 40, Rarity.RARE, mage.cards.s.SoulEcho.class)); + cards.add(new SetCardInfo("Soul Rend", 144, Rarity.UNCOMMON, mage.cards.s.SoulRend.class)); + cards.add(new SetCardInfo("Spectral Guardian", 41, Rarity.RARE, mage.cards.s.SpectralGuardian.class)); + cards.add(new SetCardInfo("Spirit of the Night", 146, Rarity.RARE, mage.cards.s.SpiritOfTheNight.class)); + cards.add(new SetCardInfo("Spitting Earth", 193, Rarity.COMMON, mage.cards.s.SpittingEarth.class)); + cards.add(new SetCardInfo("Stalking Tiger", 243, Rarity.COMMON, mage.cards.s.StalkingTiger.class)); + cards.add(new SetCardInfo("Stone Rain", 194, Rarity.COMMON, mage.cards.s.StoneRain.class)); + cards.add(new SetCardInfo("Stupor", 147, Rarity.UNCOMMON, mage.cards.s.Stupor.class)); + cards.add(new SetCardInfo("Subterranean Spirit", 195, Rarity.RARE, mage.cards.s.SubterraneanSpirit.class)); + cards.add(new SetCardInfo("Sunweb", 42, Rarity.RARE, mage.cards.s.Sunweb.class)); + cards.add(new SetCardInfo("Superior Numbers", 244, Rarity.UNCOMMON, mage.cards.s.SuperiorNumbers.class)); + cards.add(new SetCardInfo("Suq'Ata Firewalker", 94, Rarity.UNCOMMON, mage.cards.s.SuqAtaFirewalker.class)); + cards.add(new SetCardInfo("Swamp", 339, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Swamp", 340, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Swamp", 341, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Swamp", 342, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Talruum Minotaur", 196, Rarity.COMMON, mage.cards.t.TalruumMinotaur.class)); + cards.add(new SetCardInfo("Taniwha", 95, Rarity.RARE, mage.cards.t.Taniwha.class)); + cards.add(new SetCardInfo("Teeka's Dragon", 320, Rarity.RARE, mage.cards.t.TeekasDragon.class)); + cards.add(new SetCardInfo("Teferi's Curse", 96, Rarity.COMMON, mage.cards.t.TeferisCurse.class)); + cards.add(new SetCardInfo("Teferi's Drake", 97, Rarity.COMMON, mage.cards.t.TeferisDrake.class)); + cards.add(new SetCardInfo("Teferi's Isle", 330, Rarity.RARE, mage.cards.t.TeferisIsle.class)); + cards.add(new SetCardInfo("Telim'Tor", 197, Rarity.RARE, mage.cards.t.TelimTor.class)); + cards.add(new SetCardInfo("Telim'Tor's Darts", 321, Rarity.UNCOMMON, mage.cards.t.TelimTorsDarts.class)); + cards.add(new SetCardInfo("Telim'Tor's Edict", 198, Rarity.RARE, mage.cards.t.TelimTorsEdict.class)); + cards.add(new SetCardInfo("Teremko Griffin", 43, Rarity.COMMON, mage.cards.t.TeremkoGriffin.class)); + cards.add(new SetCardInfo("Thirst", 99, Rarity.COMMON, mage.cards.t.Thirst.class)); + cards.add(new SetCardInfo("Tidal Wave", 100, Rarity.UNCOMMON, mage.cards.t.TidalWave.class)); + cards.add(new SetCardInfo("Tombstone Stairwell", 149, Rarity.RARE, mage.cards.t.TombstoneStairwell.class)); + cards.add(new SetCardInfo("Tranquil Domain", 245, Rarity.COMMON, mage.cards.t.TranquilDomain.class)); + cards.add(new SetCardInfo("Tropical Storm", 246, Rarity.UNCOMMON, mage.cards.t.TropicalStorm.class)); + cards.add(new SetCardInfo("Uktabi Faerie", 247, Rarity.COMMON, mage.cards.u.UktabiFaerie.class)); + cards.add(new SetCardInfo("Uktabi Wildcats", 248, Rarity.RARE, mage.cards.u.UktabiWildcats.class)); + cards.add(new SetCardInfo("Unfulfilled Desires", 285, Rarity.RARE, mage.cards.u.UnfulfilledDesires.class)); + cards.add(new SetCardInfo("Unseen Walker", 249, Rarity.UNCOMMON, mage.cards.u.UnseenWalker.class)); + cards.add(new SetCardInfo("Unyaro Bee Sting", 250, Rarity.UNCOMMON, mage.cards.u.UnyaroBeeSting.class)); + cards.add(new SetCardInfo("Unyaro Griffin", 44, Rarity.UNCOMMON, mage.cards.u.UnyaroGriffin.class)); + cards.add(new SetCardInfo("Vaporous Djinn", 101, Rarity.UNCOMMON, mage.cards.v.VaporousDjinn.class)); + cards.add(new SetCardInfo("Ventifact Bottle", 323, Rarity.RARE, mage.cards.v.VentifactBottle.class)); + cards.add(new SetCardInfo("Viashino Warrior", 200, Rarity.COMMON, mage.cards.v.ViashinoWarrior.class)); + cards.add(new SetCardInfo("Vigilant Martyr", 45, Rarity.UNCOMMON, mage.cards.v.VigilantMartyr.class)); + cards.add(new SetCardInfo("Village Elder", 251, Rarity.COMMON, mage.cards.v.VillageElder.class)); + cards.add(new SetCardInfo("Vitalizing Cascade", 286, Rarity.UNCOMMON, mage.cards.v.VitalizingCascade.class)); + cards.add(new SetCardInfo("Volcanic Dragon", 201, Rarity.RARE, mage.cards.v.VolcanicDragon.class)); + cards.add(new SetCardInfo("Volcanic Geyser", 202, Rarity.UNCOMMON, mage.cards.v.VolcanicGeyser.class)); + cards.add(new SetCardInfo("Waiting in the Weeds", 252, Rarity.RARE, mage.cards.w.WaitingInTheWeeds.class)); + cards.add(new SetCardInfo("Wall of Roots", 253, Rarity.COMMON, mage.cards.w.WallOfRoots.class)); + cards.add(new SetCardInfo("Ward of Lights", 47, Rarity.COMMON, mage.cards.w.WardOfLights.class)); + cards.add(new SetCardInfo("Warping Wurm", 287, Rarity.RARE, mage.cards.w.WarpingWurm.class)); + cards.add(new SetCardInfo("Wave Elemental", 102, Rarity.UNCOMMON, mage.cards.w.WaveElemental.class)); + cards.add(new SetCardInfo("Wild Elephant", 254, Rarity.COMMON, mage.cards.w.WildElephant.class)); + cards.add(new SetCardInfo("Wildfire Emissary", 203, Rarity.UNCOMMON, mage.cards.w.WildfireEmissary.class)); + cards.add(new SetCardInfo("Windreaper Falcon", 289, Rarity.UNCOMMON, mage.cards.w.WindreaperFalcon.class)); + cards.add(new SetCardInfo("Withering Boon", 152, Rarity.UNCOMMON, mage.cards.w.WitheringBoon.class)); + cards.add(new SetCardInfo("Worldly Tutor", 255, Rarity.UNCOMMON, mage.cards.w.WorldlyTutor.class)); + cards.add(new SetCardInfo("Zebra Unicorn", 290, Rarity.UNCOMMON, mage.cards.z.ZebraUnicorn.class)); + cards.add(new SetCardInfo("Zhalfirin Commander", 49, Rarity.UNCOMMON, mage.cards.z.ZhalfirinCommander.class)); + cards.add(new SetCardInfo("Zhalfirin Knight", 50, Rarity.COMMON, mage.cards.z.ZhalfirinKnight.class)); + cards.add(new SetCardInfo("Zirilan of the Claw", 204, Rarity.RARE, mage.cards.z.ZirilanOfTheClaw.class)); + cards.add(new SetCardInfo("Zombie Mob", 153, Rarity.UNCOMMON, mage.cards.z.ZombieMob.class)); + cards.add(new SetCardInfo("Zuberi, Golden Feather", 51, Rarity.RARE, mage.cards.z.ZuberiGoldenFeather.class)); + } } \ No newline at end of file From 39fc9fbc598000ae21983a56e01a9f2dfeedd756 Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Fri, 15 Feb 2019 11:05:01 +0100 Subject: [PATCH 10/21] remove duplicate logger in UserManager --- .../src/main/java/mage/server/UserManager.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index a3c1c43842e..c1cf20b528a 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -29,7 +29,6 @@ public enum UserManager { private List userInfoList = new ArrayList<>(); - private static final Logger LOGGER = Logger.getLogger(UserManager.class); private final ReadWriteLock lock = new ReentrantReadWriteLock(); private final ConcurrentHashMap users = new ConcurrentHashMap<>(); @@ -59,7 +58,7 @@ public enum UserManager { public Optional getUser(UUID userId) { if (!users.containsKey(userId)) { - LOGGER.trace(String.format("User with id %s could not be found", userId)); + logger.warn(String.format("User with id %s could not be found", userId));; return Optional.empty(); } else { return Optional.of(users.get(userId)); @@ -130,10 +129,10 @@ public enum UserManager { -> USER_EXECUTOR.execute( () -> { try { - LOGGER.info("USER REMOVE - " + user.getName() + " (" + reason.toString() + ") userId: " + userId + " [" + user.getGameInfo() + ']'); + logger.info("USER REMOVE - " + user.getName() + " (" + reason.toString() + ") userId: " + userId + " [" + user.getGameInfo() + ']'); user.removeUserFromAllTables(reason); ChatManager.instance.removeUser(user.getId(), reason); - LOGGER.debug("USER REMOVE END - " + user.getName()); + logger.debug("USER REMOVE END - " + user.getName()); } catch (Exception ex) { handleException(ex); } @@ -248,12 +247,12 @@ public enum UserManager { public void handleException(Exception ex) { if (ex != null) { - LOGGER.fatal("User manager exception ", ex); + logger.fatal("User manager exception ", ex); if (ex.getStackTrace() != null) { - LOGGER.fatal(ex.getStackTrace()); + logger.fatal(ex.getStackTrace()); } } else { - LOGGER.fatal("User manager exception - null"); + logger.fatal("User manager exception - null"); } } From f2c64629a57614f317e1a9d5006cebffe1cbbaf4 Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Fri, 15 Feb 2019 13:31:10 +0100 Subject: [PATCH 11/21] couple of Sonar fixes --- .../java/mage/client/util/sets/ConstructedFormats.java | 6 +++--- Mage.Sets/src/mage/cards/g/GrothamaAllDevouring.java | 10 +++++----- Mage.Sets/src/mage/cards/g/GuardianProject.java | 6 +++--- Mage.Sets/src/mage/cards/m/MyriadLandscape.java | 8 ++++---- Mage.Sets/src/mage/cards/p/PainSeer.java | 2 +- Mage.Sets/src/mage/cards/p/Putrefaction.java | 8 ++++---- Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java | 1 - Mage/pom.xml | 4 ---- 8 files changed, 20 insertions(+), 25 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java b/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java index ae4a93b343c..2147af97e80 100644 --- a/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java +++ b/Mage.Client/src/main/java/mage/client/util/sets/ConstructedFormats.java @@ -16,7 +16,7 @@ import java.util.*; */ public final class ConstructedFormats { - public static final String ALL = "- All Sets"; + public static final String ALL_SETS = "- All Sets"; public static final String STANDARD = "- Standard"; public static final String EXTENDED = "- Extended"; public static final String FRONTIER = "- Frontier"; @@ -65,7 +65,7 @@ public final class ConstructedFormats { } public static List getSetsByFormat(final String format) { - if (!format.equals(ALL)) { + if (!format.equals(ALL_SETS)) { return underlyingSetCodesPerFormat.get(format); } return all; @@ -244,7 +244,7 @@ public final class ConstructedFormats { formats.add(0, EXTENDED); formats.add(0, STANDARD); } - formats.add(0, ALL); + formats.add(0, ALL_SETS); } private static String getBlockDisplayName(String blockName) { diff --git a/Mage.Sets/src/mage/cards/g/GrothamaAllDevouring.java b/Mage.Sets/src/mage/cards/g/GrothamaAllDevouring.java index d5013b28788..77832fe2e06 100644 --- a/Mage.Sets/src/mage/cards/g/GrothamaAllDevouring.java +++ b/Mage.Sets/src/mage/cards/g/GrothamaAllDevouring.java @@ -49,7 +49,7 @@ public final class GrothamaAllDevouring extends CardImpl { this.addAbility(new LeavesBattlefieldTriggeredAbility(new GrothamaAllDevouringDrawCardsEffect(), false), new GrothamaAllDevouringWatcher()); } - public GrothamaAllDevouring(final GrothamaAllDevouring card) { + private GrothamaAllDevouring(final GrothamaAllDevouring card) { super(card); } @@ -61,16 +61,16 @@ public final class GrothamaAllDevouring extends CardImpl { class GrothamaAllDevouringGainAbilityEffect extends GainAbilityAllEffect { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creatures"); + private static final FilterCreaturePermanent otherCreatureFilter = new FilterCreaturePermanent("other creatures"); static { - filter.add(AnotherPredicate.instance); + otherCreatureFilter.add(AnotherPredicate.instance); } GrothamaAllDevouringGainAbilityEffect() { super(new AttacksTriggeredAbility( new GrothamaAllDevouringFightEffect(null, null), true - ), Duration.WhileOnBattlefield, filter); + ), Duration.WhileOnBattlefield, otherCreatureFilter); this.staticText = "Other creatures have \"Whenever this creature attacks, you may have it fight {this}.\""; } @@ -168,7 +168,7 @@ class GrothamaAllDevouringDrawCardsEffect extends OneShotEffect { class GrothamaAllDevouringWatcher extends Watcher { - Map> damageMap = new HashMap<>(); + private Map> damageMap = new HashMap<>(); GrothamaAllDevouringWatcher() { super(GrothamaAllDevouringWatcher.class, WatcherScope.GAME); diff --git a/Mage.Sets/src/mage/cards/g/GuardianProject.java b/Mage.Sets/src/mage/cards/g/GuardianProject.java index 899fcf39291..dd4dcd85a1e 100644 --- a/Mage.Sets/src/mage/cards/g/GuardianProject.java +++ b/Mage.Sets/src/mage/cards/g/GuardianProject.java @@ -51,14 +51,14 @@ public final class GuardianProject extends CardImpl { class GuardianProjectTriggeredAbility extends EntersBattlefieldAllTriggeredAbility { - public static final FilterPermanent filter = new FilterControlledCreaturePermanent(); + public static final FilterPermanent filterNonTokenControlledCreature = new FilterControlledCreaturePermanent(); static { - filter.add(Predicates.not(TokenPredicate.instance)); + filterNonTokenControlledCreature.add(Predicates.not(TokenPredicate.instance)); } GuardianProjectTriggeredAbility() { - super(new GuardianProjectEffect(null), filter); + super(new GuardianProjectEffect(null), filterNonTokenControlledCreature); } private GuardianProjectTriggeredAbility(final GuardianProjectTriggeredAbility ability) { diff --git a/Mage.Sets/src/mage/cards/m/MyriadLandscape.java b/Mage.Sets/src/mage/cards/m/MyriadLandscape.java index d4aa18ce39b..be5c3e2e26c 100644 --- a/Mage.Sets/src/mage/cards/m/MyriadLandscape.java +++ b/Mage.Sets/src/mage/cards/m/MyriadLandscape.java @@ -68,19 +68,19 @@ public final class MyriadLandscape extends CardImpl { class TargetCardInLibrarySharingLandType extends TargetCardInLibrary { - private static final FilterCard filter = new FilterCard("basic land card"); + private static final FilterCard filterBasicLandCard = new FilterCard("basic land card"); static { List> subTypePreds = new ArrayList<>(); for (SubType landType : SubType.getLandTypes()) { subTypePreds.add(new SubtypePredicate(landType)); } - filter.add(Predicates.or(subTypePreds)); - filter.add(new SupertypePredicate(SuperType.BASIC)); + filterBasicLandCard.add(Predicates.or(subTypePreds)); + filterBasicLandCard.add(new SupertypePredicate(SuperType.BASIC)); } public TargetCardInLibrarySharingLandType(int minNumTargets, int maxNumTargets) { - super(minNumTargets, maxNumTargets, filter); + super(minNumTargets, maxNumTargets, filterBasicLandCard); } public TargetCardInLibrarySharingLandType(final TargetCardInLibrarySharingLandType target) { diff --git a/Mage.Sets/src/mage/cards/p/PainSeer.java b/Mage.Sets/src/mage/cards/p/PainSeer.java index f5758152186..f14b4a5bc89 100644 --- a/Mage.Sets/src/mage/cards/p/PainSeer.java +++ b/Mage.Sets/src/mage/cards/p/PainSeer.java @@ -71,7 +71,7 @@ class PainSeerEffect extends OneShotEffect { if (card != null) { Cards cards = new CardsImpl(card); player.revealCards("Pain Seer", cards, game); - if (card.moveToZone(Zone.HAND, source.getSourceId(), game, false)) { + if(player.moveCards(card, Zone.HAND, source, game)) { player.loseLife(card.getConvertedManaCost(), game, false); return true; } diff --git a/Mage.Sets/src/mage/cards/p/Putrefaction.java b/Mage.Sets/src/mage/cards/p/Putrefaction.java index 30bd43132e2..216072a70cc 100644 --- a/Mage.Sets/src/mage/cards/p/Putrefaction.java +++ b/Mage.Sets/src/mage/cards/p/Putrefaction.java @@ -41,13 +41,13 @@ public final class Putrefaction extends CardImpl { class PutrefactionTriggeredAbility extends SpellCastAllTriggeredAbility { - private static final FilterSpell filter = new FilterSpell("green or white spell"); + private static final FilterSpell filterGreenOrWhiteSpell = new FilterSpell("green or white spell"); static { - filter.add(Predicates.or(new ColorPredicate(ObjectColor.GREEN), new ColorPredicate(ObjectColor.WHITE))); + filterGreenOrWhiteSpell.add(Predicates.or(new ColorPredicate(ObjectColor.GREEN), new ColorPredicate(ObjectColor.WHITE))); } public PutrefactionTriggeredAbility() { - super(new DiscardTargetEffect(1), filter, false); + super(new DiscardTargetEffect(1), filterGreenOrWhiteSpell, false); } public PutrefactionTriggeredAbility(PutrefactionTriggeredAbility ability) { @@ -58,7 +58,7 @@ class PutrefactionTriggeredAbility extends SpellCastAllTriggeredAbility { public boolean checkTrigger(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST) { Spell spell = game.getStack().getSpell(event.getTargetId()); - if (spell != null && filter.match(spell, getSourceId(), getControllerId(), game)) { + if (spell != null && filterGreenOrWhiteSpell.match(spell, getSourceId(), getControllerId(), game)) { this.getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } diff --git a/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java b/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java index 9ba830b1fa3..343271b27d5 100644 --- a/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java +++ b/Mage.Sets/src/mage/cards/v/VraskaTheUnseen.java @@ -74,7 +74,6 @@ public final class VraskaTheUnseen extends CardImpl { class VraskaTheUnseenGainAbilityEffect extends ContinuousEffectImpl { protected Ability ability; - protected int startingTurn; public VraskaTheUnseenGainAbilityEffect(Ability ability) { super(Duration.Custom, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); diff --git a/Mage/pom.xml b/Mage/pom.xml index 981365c3eea..51753a31e31 100644 --- a/Mage/pom.xml +++ b/Mage/pom.xml @@ -105,10 +105,6 @@ - - - - mage From 232d37ec9b83d75724d9bcd889f1a0c8e9de06c3 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sat, 16 Feb 2019 01:02:44 +0400 Subject: [PATCH 12/21] Typo --- .../src/main/java/mage/client/deckeditor/CardSelector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index bbba3b9a4ab..92a8c63964c 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -80,7 +80,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene for (int i = 0; (i < setCodes.length) && (!is_removeFinish); i++) { String item = setCodes[i]; - if (!item.equals(ConstructedFormats.ALL)) { + if (!item.equals(ConstructedFormats.ALL_SETS)) { result.add(item); } } From 9ef888c63454dbef1f754d2fd189f694aa11f7aa Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sun, 17 Feb 2019 15:54:52 +0400 Subject: [PATCH 13/21] UI: symbols download fixes: * fixed that mana symbols don't refresh after download finisged (#5592, no more xmage restarts); * fixed that window don't close after download finished; --- .../org/mage/plugins/card/CardPluginImpl.java | 120 ++++++++------ .../org/mage/plugins/card/dl/DownloadGui.java | 152 ++++++++---------- .../org/mage/plugins/card/dl/DownloadJob.java | 31 ++-- .../org/mage/plugins/card/dl/Downloader.java | 111 +++++++------ .../card/dl/lm/AbstractLaternaBean.java | 10 +- 5 files changed, 223 insertions(+), 201 deletions(-) diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java index c8a403dc3d1..4e690bf1a56 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java @@ -1,26 +1,9 @@ package org.mage.plugins.card; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.Rectangle; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.JLayeredPane; import mage.cards.MagePermanent; import mage.cards.action.ActionCallback; import mage.client.dialog.PreferencesDialog; import mage.client.util.GUISizeHelper; -import mage.constants.Rarity; import mage.interfaces.plugin.CardPlugin; import mage.view.CardView; import mage.view.CounterView; @@ -41,14 +24,21 @@ import org.mage.plugins.card.dl.sources.ScryfallSymbolsSource; import org.mage.plugins.card.images.ImageCache; import org.mage.plugins.card.info.CardInfoPaneImpl; +import javax.swing.*; +import java.awt.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.List; +import java.util.*; +import java.util.concurrent.TimeUnit; + /** * {@link CardPlugin} implementation. * - * @author nantuko - * @version 0.1 01.11.2010 Mage permanents. Sorting card layout. - * @version 0.6 17.07.2011 #sortPermanents got option to display non-land - * permanents in one pile - * @version 0.7 29.07.2011 face down cards support + * @author nantuko, JayDi85 */ @PluginImplementation @Author(name = "nantuko") @@ -584,6 +574,10 @@ public class CardPluginImpl implements CardPlugin { } } + private void symbolsOnFinish() { + + } + /** * Download various symbols (mana, tap, set). * @@ -591,23 +585,25 @@ public class CardPluginImpl implements CardPlugin { */ @Override public void downloadSymbols(String imagesDir) { - final DownloadGui g = new DownloadGui(new Downloader()); + final Downloader downloader = new Downloader(); + final DownloadGui downloadGui = new DownloadGui(downloader); - Iterable it; + LOGGER.info("Symbols download prepare..."); + Iterable jobs; - it = new GathererSymbols(); - for (DownloadJob job : it) { - g.getDownloader().add(job); + jobs = new GathererSymbols(); + for (DownloadJob job : jobs) { + downloader.add(job); } - it = new GathererSets(); - for (DownloadJob job : it) { - g.getDownloader().add(job); + jobs = new GathererSets(); + for (DownloadJob job : jobs) { + downloader.add(job); } - it = new ScryfallSymbolsSource(); - for (DownloadJob job : it) { - g.getDownloader().add(job); + jobs = new ScryfallSymbolsSource(); + for (DownloadJob job : jobs) { + downloader.add(job); } /* @@ -615,26 +611,56 @@ public class CardPluginImpl implements CardPlugin { for (DownloadJob job : it) { g.getDownloader().add(job); } - */ - it = new DirectLinksForDownload(); - for (DownloadJob job : it) { - g.getDownloader().add(job); + */ + + jobs = new DirectLinksForDownload(); + for (DownloadJob job : jobs) { + downloader.add(job); } - JDialog d = new JDialog((Frame) null, "Download symbols", false); - d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); - d.addWindowListener(new WindowAdapter() { + LOGGER.info("Symbols download needs " + downloader.getJobs().size() + " files"); + + // download GUI dialog + JDialog dialog = new JDialog((Frame) null, "Download symbols", false); + dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + dialog.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { - g.getDownloader().dispose(); - ManaSymbols.loadImages(); - // TODO: check reload process after download (icons do not update) + // user force to close window/downloader + downloader.cleanup(); } }); - d.setLayout(new BorderLayout()); - d.add(g); - d.pack(); - d.setVisible(true); + dialog.setLayout(new BorderLayout()); + dialog.add(downloadGui); + dialog.pack(); + dialog.setVisible(true); + + // downloader controller thread + SwingWorker worker = new SwingWorker() { + @Override + protected Void doInBackground() throws Exception { + downloader.publishAllJobs(); + downloader.waitFinished(); + downloader.cleanup(); + return null; + } + }; + // downloader finisher + worker.addPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getPropertyName().equals("state")) { + if (evt.getNewValue() == SwingWorker.StateValue.DONE) { + // all done, can close dialog and refresh symbols for UI + LOGGER.info("Symbols download finished"); + dialog.dispose(); + ManaSymbols.loadImages(); + ImageCache.clearCache(); + } + } + } + }); + worker.execute(); } @Override diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java index e3ff2ca179d..3ae06016577 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadGui.java @@ -1,113 +1,105 @@ -/** - * DownloadGui.java - * - * Created on 25.08.2010 - */ - package org.mage.plugins.card.dl; +import org.mage.plugins.card.dl.DownloadJob.State; -import java.awt.BorderLayout; -import java.awt.Dimension; +import javax.swing.*; +import java.awt.*; import java.beans.IndexedPropertyChangeEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.HashMap; import java.util.Map; -import javax.swing.BorderFactory; -import javax.swing.BoundedRangeModel; -import javax.swing.BoxLayout; -import javax.swing.DefaultBoundedRangeModel; -import javax.swing.JButton; -import javax.swing.JPanel; -import javax.swing.JProgressBar; -import javax.swing.JScrollPane; - -import org.mage.plugins.card.dl.DownloadJob.State; - /** - * The class DownloadGui. - * - * @version V0.0 25.08.2010 + * Downloader GUI to control and show progress + * * @author Clemens Koza */ public class DownloadGui extends JPanel { - private static final long serialVersionUID = -7346572382493844327L; + private static final long serialVersionUID = -7346572382493844327L; - private final Downloader d; - private final DownloadListener l = new DownloadListener(); - private final BoundedRangeModel model = new DefaultBoundedRangeModel(0, 0, 0, 0); - private final JProgressBar progress = new JProgressBar(model); + private final Downloader downloader; + private final DownloadListener listener = new DownloadListener(); + private final BoundedRangeModel progressModel = new DefaultBoundedRangeModel(0, 0, 0, 0); + private final JProgressBar progressBar = new JProgressBar(progressModel); - private final Map progresses = new HashMap<>(); - private final JPanel panel = new JPanel(); + private final Map jobPanels = new HashMap<>(); + private final JPanel basicPanel = new JPanel(); public DownloadGui(Downloader downloader) { super(new BorderLayout()); - this.d = downloader; - downloader.addPropertyChangeListener(l); + this.downloader = downloader; + downloader.addPropertyChangeListener(listener); JPanel p = new JPanel(new BorderLayout()); p.setBorder(BorderFactory.createTitledBorder("Progress:")); - p.add(progress); - JButton b = new JButton("X"); - b.addActionListener(e -> { - d.dispose(); + p.add(progressBar); + JButton closeButton = new JButton("X"); + closeButton.addActionListener(e -> { + this.downloader.cleanup(); }); - p.add(b, BorderLayout.EAST); + p.add(closeButton, BorderLayout.EAST); add(p, BorderLayout.NORTH); - panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); - JScrollPane pane = new JScrollPane(panel); + basicPanel.setLayout(new BoxLayout(basicPanel, BoxLayout.Y_AXIS)); + JScrollPane pane = new JScrollPane(basicPanel); pane.setPreferredSize(new Dimension(500, 300)); add(pane); - for(int i = 0; i < downloader.getJobs().size(); i++) { + for (int i = 0; i < downloader.getJobs().size(); i++) { addJob(i, downloader.getJobs().get(i)); } } public Downloader getDownloader() { - return d; + return downloader; } private class DownloadListener implements PropertyChangeListener { + @Override public void propertyChange(PropertyChangeEvent evt) { String name = evt.getPropertyName(); - if(evt.getSource() instanceof DownloadJob) { - DownloadPanel p = progresses.get(evt.getSource()); + if (evt.getSource() instanceof DownloadJob) { + // one job changes + DownloadPanel panel = jobPanels.get(evt.getSource()); switch (name) { case "state": - if(evt.getOldValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) { + if (evt.getOldValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) { + // started changeProgress(-1, 0); - } if(evt.getNewValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) { - changeProgress(+1, 0); - } if(p != null) { - p.setVisible(p.getJob().getState() != State.FINISHED); - p.revalidate(); - } break; + } + if (evt.getNewValue() == State.FINISHED || evt.getOldValue() == State.ABORTED) { + // finished + changeProgress(+1, 0); + } + if (panel != null) { + panel.setVisible(panel.getJob().getState() != State.FINISHED); + panel.revalidate(); + } + break; case "message": - if(p != null) { - JProgressBar bar = p.getBar(); - String message = p.getJob().getMessage(); + if (panel != null) { + JProgressBar bar = panel.getBar(); + String message = panel.getJob().getMessage(); bar.setStringPainted(message != null); bar.setString(message); - } break; + } + break; } - } else if(evt.getSource() == d) { - if("jobs".equals(name)) { + } else if (evt.getSource() == downloader) { + // all jobs changes (add/delete) + if ("jobs".equals(name)) { IndexedPropertyChangeEvent ev = (IndexedPropertyChangeEvent) evt; int index = ev.getIndex(); DownloadJob oldValue = (DownloadJob) ev.getOldValue(); - if(oldValue != null) { + if (oldValue != null) { removeJob(index, oldValue); } DownloadJob newValue = (DownloadJob) ev.getNewValue(); - if(newValue != null) { + if (newValue != null) { addJob(index, newValue); } } @@ -116,39 +108,39 @@ public class DownloadGui extends JPanel { } private synchronized void addJob(int index, DownloadJob job) { - job.addPropertyChangeListener(l); + job.addPropertyChangeListener(listener); changeProgress(0, +1); DownloadPanel p = new DownloadPanel(job); - progresses.put(job, p); - panel.add(p, index); - panel.revalidate(); + jobPanels.put(job, p); + basicPanel.add(p, index); + basicPanel.revalidate(); } private synchronized void removeJob(int index, DownloadJob job) { - assert progresses.get(job) == panel.getComponent(index); - job.removePropertyChangeListener(l); + assert jobPanels.get(job) == basicPanel.getComponent(index); + job.removePropertyChangeListener(listener); changeProgress(0, -1); - progresses.remove(job); - panel.remove(index); - panel.revalidate(); + jobPanels.remove(job); + basicPanel.remove(index); + basicPanel.revalidate(); } private synchronized void changeProgress(int progress, int total) { - progress += model.getValue(); - total += model.getMaximum(); - model.setMaximum(total); - model.setValue(progress); - this.progress.setStringPainted(true); - this.progress.setString(progress + "/" + total); + progress += progressModel.getValue(); + total += progressModel.getMaximum(); + progressModel.setMaximum(total); + progressModel.setValue(progress); + this.progressBar.setStringPainted(true); + this.progressBar.setString(progress + "/" + total); } private class DownloadPanel extends JPanel { private static final long serialVersionUID = 1187986738303477168L; - private final DownloadJob job; - private final JProgressBar bar; + private final DownloadJob job; + private final JProgressBar bar; - public DownloadPanel(DownloadJob job) { + DownloadPanel(DownloadJob job) { super(new BorderLayout()); this.job = job; @@ -156,7 +148,7 @@ public class DownloadGui extends JPanel { add(bar = new JProgressBar(job.getProgress())); JButton b = new JButton("X"); b.addActionListener(e -> { - switch(this.job.getState()) { + switch (this.job.getState()) { case NEW: case PREPARING: case WORKING: @@ -165,7 +157,7 @@ public class DownloadGui extends JPanel { }); add(b, BorderLayout.EAST); - if(job.getState() == State.FINISHED | job.getState() == State.ABORTED) { + if (job.getState() == State.FINISHED | job.getState() == State.ABORTED) { changeProgress(+1, 0); } setVisible(job.getState() != State.FINISHED); @@ -177,15 +169,13 @@ public class DownloadGui extends JPanel { Dimension d = getPreferredSize(); d.width = Integer.MAX_VALUE; setMaximumSize(d); -// d.width = 500; -// setMinimumSize(d); } - public DownloadJob getJob() { + DownloadJob getJob() { return job; } - public JProgressBar getBar() { + JProgressBar getBar() { return bar; } } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java index c39fb6d1633..72c99422ab2 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/DownloadJob.java @@ -1,28 +1,18 @@ -/** - * DownloadJob.java - * - * Created on 25.08.2010 - */ package org.mage.plugins.card.dl; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.Proxy; -import java.net.URL; -import java.net.URLConnection; -import javax.swing.BoundedRangeModel; -import javax.swing.DefaultBoundedRangeModel; import org.mage.plugins.card.dl.beans.properties.Property; import org.mage.plugins.card.dl.lm.AbstractLaternaBean; import org.mage.plugins.card.utils.CardImageUtils; +import javax.swing.*; +import java.io.*; +import java.net.Proxy; +import java.net.URL; +import java.net.URLConnection; + /** - * The class DownloadJob. + * Downloader job to download one resource * - * @version V0.0 25.08.2010 * @author Clemens Koza, JayDi85 */ public class DownloadJob extends AbstractLaternaBean { @@ -88,11 +78,8 @@ public class DownloadJob extends AbstractLaternaBean { */ public void setError(String message, Exception error) { if (message == null) { - - message = "Download of " + name + "from " + source.toString() + " caused error: " + error.toString(); + message = "Download of " + name + " from " + source.toString() + " caused error: " + error.toString(); } -// log.warn(message, error); - log.warn(message); this.state.setValue(State.ABORTED); this.error.setValue(error); this.message.setValue(message); @@ -116,7 +103,7 @@ public class DownloadJob extends AbstractLaternaBean { return; } - // change to working state on good prepare call + // can continue this.state.setValue(State.WORKING); } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/Downloader.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/Downloader.java index 497ee62d62b..815083b9013 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/Downloader.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/Downloader.java @@ -1,26 +1,9 @@ -/** - * Downloader.java - * - * Created on 25.08.2010 - */ package org.mage.plugins.card.dl; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.ConnectException; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import javax.swing.BoundedRangeModel; import org.apache.log4j.Logger; import org.jetlang.channels.Channel; import org.jetlang.channels.MemoryChannel; import org.jetlang.core.Callback; -import org.jetlang.core.Disposable; import org.jetlang.fibers.Fiber; import org.jetlang.fibers.PoolFiberFactory; import org.mage.plugins.card.dl.DownloadJob.Destination; @@ -28,41 +11,56 @@ import org.mage.plugins.card.dl.DownloadJob.Source; import org.mage.plugins.card.dl.DownloadJob.State; import org.mage.plugins.card.dl.lm.AbstractLaternaBean; +import javax.swing.*; +import java.io.*; +import java.net.ConnectException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + /** - * The class Downloader. + * Downloader * - * @version V0.0 25.08.2010 - * @author Clemens Koza + * @author Clemens Koza, JayDi85 */ -public class Downloader extends AbstractLaternaBean implements Disposable { +public class Downloader extends AbstractLaternaBean { private static final Logger logger = Logger.getLogger(Downloader.class); private final List jobs = properties.list("jobs"); - private final Channel channel = new MemoryChannel<>(); + private final Channel jobsQueue = new MemoryChannel<>(); + private CountDownLatch worksCount = null; private final ExecutorService pool = Executors.newCachedThreadPool(); private final List fibers = new ArrayList<>(); public Downloader() { + // prepare 10 threads and start to waiting new download jobs from queue PoolFiberFactory f = new PoolFiberFactory(pool); - //subscribe multiple fibers for parallel execution for (int i = 0, numThreads = 10; i < numThreads; i++) { Fiber fiber = f.create(); fiber.start(); fibers.add(fiber); - channel.subscribe(fiber, new DownloadCallback()); + jobsQueue.subscribe(fiber, new DownloadCallback()); } } - @Override - public void dispose() { + public void cleanup() { + // close all threads and jobs for (DownloadJob j : jobs) { switch (j.getState()) { case NEW: case PREPARING: case WORKING: j.setState(State.ABORTED); + break; + case ABORTED: + case FINISHED: + // don't change state + break; } } @@ -70,16 +68,10 @@ public class Downloader extends AbstractLaternaBean implements Disposable { f.dispose(); } pool.shutdown(); - } - /** - * - * @throws Throwable - */ - @Override - protected void finalize() throws Throwable { - dispose(); - super.finalize(); + while (worksCount.getCount() != 0) { + worksCount.countDown(); + } } public void add(DownloadJob job) { @@ -94,7 +86,27 @@ public class Downloader extends AbstractLaternaBean implements Disposable { } job.setState(State.NEW); jobs.add(job); - channel.publish(job); + } + + public void publishAllJobs() { + worksCount = new CountDownLatch(jobs.size()); + for (DownloadJob job : jobs) { + jobsQueue.publish(job); + } + } + + public void waitFinished() { + try { + while (worksCount.getCount() != 0) { + worksCount.await(60, TimeUnit.SECONDS); + + if (worksCount.getCount() != 0) { + logger.warn("Symbols download too long..."); + } + } + } catch (InterruptedException e) { + logger.error("Need to stop symbols download..."); + } } public List getJobs() { @@ -111,20 +123,23 @@ public class Downloader extends AbstractLaternaBean implements Disposable { @Override public void onMessage(DownloadJob job) { - // start to work - // the job won't be processed by multiple threads + // each 10 threads gets same jobs, but take to work only one NEW synchronized (job) { - if (job.getState() != State.NEW) { - return; - } - - job.doPrepareAndStartWork(); - - if (job.getState() != State.WORKING) { + if (job.getState() == State.NEW) { + // take new job + job.doPrepareAndStartWork(); + if (job.getState() != State.WORKING) { + logger.warn("Can't prepare symbols download job: " + job.getName()); + worksCount.countDown(); + return; + } + } else { + // skip job (other thread takes it) return; } } + // real work for new job // download and save data try { Source src = job.getSource(); @@ -132,9 +147,11 @@ public class Downloader extends AbstractLaternaBean implements Disposable { BoundedRangeModel progress = job.getProgress(); if (dst.isValid()) { + // already done progress.setMaximum(1); progress.setValue(1); } else { + // downloading if (dst.exists()) { try { dst.delete(); @@ -149,7 +166,7 @@ public class Downloader extends AbstractLaternaBean implements Disposable { try { byte[] buf = new byte[8 * 1024]; int total = 0; - for (int len; (len = is.read(buf)) != -1;) { + for (int len; (len = is.read(buf)) != -1; ) { if (job.getState() == State.ABORTED) { throw new IOException("Job was aborted"); } @@ -193,6 +210,8 @@ public class Downloader extends AbstractLaternaBean implements Disposable { logger.warn("Error resource download " + job.getName() + " from " + job.getSource().toString() + ": " + message); } catch (IOException ex) { job.setError(ex); + } finally { + worksCount.countDown(); } } } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java index be462e18296..224a1b036e6 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/lm/AbstractLaternaBean.java @@ -1,6 +1,6 @@ /** * AbstractLaternaBean.java - * + *

* Created on 25.08.2010 */ @@ -16,12 +16,12 @@ import org.mage.plugins.card.dl.beans.properties.bound.BoundProperties; /** * The class AbstractLaternaBean. - * - * @version V0.0 25.08.2010 + * * @author Clemens Koza + * @version V0.0 25.08.2010 */ public class AbstractLaternaBean extends AbstractBoundBean { protected static final Logger log = Logger.getLogger(AbstractLaternaBean.class); - protected final Properties properties = new BoundProperties(s); - protected EventListenerList listeners = new EventListenerList(); + protected final Properties properties = new BoundProperties(s); + protected EventListenerList listeners = new EventListenerList(); } From 971a98061dc0927d105119799da3f322945709cf Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sun, 17 Feb 2019 16:09:00 +0400 Subject: [PATCH 14/21] Fixed SQL errors on non escaped symbols in usernames/emails/passwords; --- .../mage/client/deckeditor/CardSelector.java | 5 +- .../mage/client/dialog/ConnectDialog.java | 4 +- .../client/dialog/RegisterUserDialog.java | 144 +++++------ .../client/dialog/ResetPasswordDialog.java | 230 +++++++++--------- .../server/record/TableRecordRepository.java | 3 +- .../server/record/UserStatsRepository.java | 3 +- .../mage/cards/repository/CardRepository.java | 4 +- .../mage/cards/repository/RepositoryUtil.java | 6 +- 8 files changed, 203 insertions(+), 196 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index 92a8c63964c..145126d2036 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -72,14 +72,11 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene currentView = mainModel; // by default we use List View listCodeSelected = new CheckBoxList(); - // remove the all option - boolean is_removeFinish = false; String[] setCodes = ConstructedFormats.getTypes(); java.util.List result = new ArrayList<>(); - for (int i = 0; (i < setCodes.length) && (!is_removeFinish); i++) { - String item = setCodes[i]; + for (String item : setCodes) { if (!item.equals(ConstructedFormats.ALL_SETS)) { result.add(item); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java index a0ee45ce2bf..6c57f7405db 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java @@ -92,7 +92,7 @@ public class ConnectDialog extends MageDialog { MagePreferences.setServerAddress(serverAddress); MagePreferences.setServerPort(Integer.parseInt(txtPort.getText().trim())); MagePreferences.setUserName(serverAddress, txtUserName.getText().trim()); - MagePreferences.setPassword(serverAddress, txtPassword.getText().trim()); + MagePreferences.setPassword(serverAddress, String.valueOf(txtPassword.getPassword()).trim()); MageFrame.getPreferences().put(KEY_CONNECT_AUTO_CONNECT, Boolean.toString(chkAutoConnect.isSelected())); } @@ -508,7 +508,7 @@ public class ConnectDialog extends MageDialog { connection.setHost(this.txtServer.getText().trim()); connection.setPort(Integer.valueOf(this.txtPort.getText().trim())); connection.setUsername(this.txtUserName.getText().trim()); - connection.setPassword(this.txtPassword.getText().trim()); + connection.setPassword(String.valueOf(this.txtPassword.getPassword()).trim()); // force to redownload db boolean redownloadDatabase = (ExpansionRepository.instance.getSetByCode("GRN") == null || CardRepository.instance.findCard("Island") == null); connection.setForceDBComparison(this.chkForceUpdateDB.isSelected() || redownloadDatabase); diff --git a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java index b226a1090ce..bebc65749ca 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/RegisterUserDialog.java @@ -1,16 +1,18 @@ package mage.client.dialog; -import java.util.concurrent.CancellationException; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import javax.swing.SwingWorker; import mage.client.MageFrame; import mage.client.SessionHandler; import mage.client.preference.MagePreferences; import mage.remote.Connection; import org.apache.log4j.Logger; +import javax.swing.*; +import java.util.Arrays; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + public class RegisterUserDialog extends MageDialog { private static final Logger logger = Logger.getLogger(ConnectDialog.class); @@ -106,73 +108,73 @@ public class RegisterUserDialog extends MageDialog { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(lblPasswordConfirmationReasoning) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(lblServer) - .addComponent(lblUserName) - .addComponent(lblPort) - .addComponent(lblPassword) - .addComponent(lblPasswordConfirmation) - .addComponent(lblEmail)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtServer, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtPort, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtUserName, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtPasswordConfirmation, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addComponent(lblEmailReasoning) - .addGroup(layout.createSequentialGroup() - .addComponent(btnRegister) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnCancel))) - .addComponent(lblStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addContainerGap(22, Short.MAX_VALUE)) + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(lblPasswordConfirmationReasoning) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(lblServer) + .addComponent(lblUserName) + .addComponent(lblPort) + .addComponent(lblPassword) + .addComponent(lblPasswordConfirmation) + .addComponent(lblEmail)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtServer, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtPort, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtUserName, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtPasswordConfirmation, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(lblEmailReasoning) + .addGroup(layout.createSequentialGroup() + .addComponent(btnRegister) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnCancel))) + .addComponent(lblStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(22, Short.MAX_VALUE)) ); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(9, 9, 9) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblServer) - .addComponent(txtServer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblPort) - .addComponent(txtPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblUserName) - .addComponent(txtUserName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblPassword) - .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtPasswordConfirmation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblPasswordConfirmation)) - .addComponent(lblPasswordConfirmationReasoning) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblEmail) - .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblEmailReasoning) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnCancel) - .addComponent(btnRegister)) - .addContainerGap()) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(9, 9, 9) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblServer) + .addComponent(txtServer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblPort) + .addComponent(txtPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblUserName) + .addComponent(txtUserName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblPassword) + .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtPasswordConfirmation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblPasswordConfirmation)) + .addComponent(lblPasswordConfirmationReasoning) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblEmail) + .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblEmailReasoning) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnCancel) + .addComponent(btnRegister)) + .addContainerGap()) ); pack(); @@ -187,7 +189,7 @@ public class RegisterUserDialog extends MageDialog { }//GEN-LAST:event_btnCancelActionPerformed private void btnRegisterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRegisterActionPerformed - if (!this.txtPassword.getText().equals(this.txtPasswordConfirmation.getText())) { + if (!Arrays.equals(this.txtPassword.getPassword(), this.txtPasswordConfirmation.getPassword())) { MageFrame.getInstance().showError("Passwords don't match."); return; } @@ -195,7 +197,7 @@ public class RegisterUserDialog extends MageDialog { connection.setHost(this.txtServer.getText().trim()); connection.setPort(Integer.valueOf(this.txtPort.getText().trim())); connection.setUsername(this.txtUserName.getText().trim()); - connection.setPassword(this.txtPassword.getText().trim()); + connection.setPassword(String.valueOf(this.txtPassword.getPassword()).trim()); connection.setEmail(this.txtEmail.getText().trim()); PreferencesDialog.setProxyInformation(connection); task = new ConnectTask(); diff --git a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java index 0b99f9a2c89..5e99e421277 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ResetPasswordDialog.java @@ -1,16 +1,18 @@ package mage.client.dialog; -import java.util.concurrent.CancellationException; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import javax.swing.SwingWorker; import mage.client.MageFrame; import mage.client.SessionHandler; import mage.client.preference.MagePreferences; import mage.remote.Connection; import org.apache.log4j.Logger; +import javax.swing.*; +import java.util.Arrays; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + public class ResetPasswordDialog extends MageDialog { private static final Logger logger = Logger.getLogger(ResetPasswordDialog.class); @@ -97,51 +99,51 @@ public class ResetPasswordDialog extends MageDialog { javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup() - .addComponent(jLabel6) - .addGap(0, 0, Short.MAX_VALUE)) - .addGroup(jPanel2Layout.createSequentialGroup() - .addContainerGap() - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup() - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addComponent(lblAuthToken, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblPassword, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblPasswordConfirmation, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtAuthToken) - .addComponent(txtPassword) - .addComponent(txtPasswordConfirmation))) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() - .addGap(0, 204, Short.MAX_VALUE) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(lblPasswordConfirmationReasoning, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(btnSubmitNewPassword, javax.swing.GroupLayout.Alignment.TRAILING)))) - .addContainerGap()) + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addComponent(jLabel6) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(lblAuthToken, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblPassword, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblPasswordConfirmation, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtAuthToken) + .addComponent(txtPassword) + .addComponent(txtPasswordConfirmation))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addGap(0, 204, Short.MAX_VALUE) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblPasswordConfirmationReasoning, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(btnSubmitNewPassword, javax.swing.GroupLayout.Alignment.TRAILING)))) + .addContainerGap()) ); jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup() - .addComponent(jLabel6) - .addGap(24, 24, 24) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblAuthToken) - .addComponent(txtAuthToken, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblPassword) - .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblPasswordConfirmation) - .addComponent(txtPasswordConfirmation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblPasswordConfirmationReasoning) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btnSubmitNewPassword) - .addContainerGap(9, Short.MAX_VALUE)) + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addComponent(jLabel6) + .addGap(24, 24, 24) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblAuthToken) + .addComponent(txtAuthToken, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblPassword) + .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblPasswordConfirmation) + .addComponent(txtPasswordConfirmation, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblPasswordConfirmationReasoning) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnSubmitNewPassword) + .addContainerGap(9, Short.MAX_VALUE)) ); jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder()); @@ -158,33 +160,33 @@ public class ResetPasswordDialog extends MageDialog { javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(jLabel5) - .addGap(0, 0, Short.MAX_VALUE)) - .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap() - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(lblEmail) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtEmail)) - .addGroup(jPanel1Layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(btnGetAuthToken))) - .addContainerGap()) + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(jLabel5) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(lblEmail) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(txtEmail)) + .addGroup(jPanel1Layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(btnGetAuthToken))) + .addContainerGap()) ); jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(jLabel5) - .addGap(24, 24, 24) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblEmail) - .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnGetAuthToken) - .addContainerGap()) + jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(jLabel5) + .addGap(24, 24, 24) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblEmail) + .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnGetAuthToken) + .addContainerGap()) ); btnCancel.setText("Cancel"); @@ -199,46 +201,46 @@ public class ResetPasswordDialog extends MageDialog { javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(btnCancel)) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(lblServer) - .addComponent(lblPort)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtServer) - .addComponent(txtPort)))) - .addContainerGap()) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(btnCancel)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(lblStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(lblServer) + .addComponent(lblPort)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtServer) + .addComponent(txtPort)))) + .addContainerGap()) ); layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(lblServer) - .addComponent(txtServer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(lblPort)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(lblStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnCancel) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lblServer) + .addComponent(txtServer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblPort)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(lblStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnCancel) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); @@ -269,11 +271,11 @@ public class ResetPasswordDialog extends MageDialog { MageFrame.getInstance().showError("Please enter an auth token."); return; } - if (this.txtPassword.getText().isEmpty()) { + if (String.valueOf(this.txtPassword.getPassword()).trim().isEmpty()) { MageFrame.getInstance().showError("Please enter a new password."); return; } - if (!this.txtPassword.getText().equals(this.txtPasswordConfirmation.getText())) { + if (!Arrays.equals(this.txtPassword.getPassword(), this.txtPasswordConfirmation.getPassword())) { MageFrame.getInstance().showError("Passwords don't match."); return; } @@ -284,7 +286,7 @@ public class ResetPasswordDialog extends MageDialog { PreferencesDialog.setProxyInformation(connection); connection.setEmail(this.txtEmail.getText().trim()); connection.setAuthToken(this.txtAuthToken.getText().trim()); - connection.setPassword(this.txtPassword.getText().trim()); + connection.setPassword(String.valueOf(this.txtPassword.getPassword()).trim()); resetPasswordTask = new ResetPasswordTask(); resetPasswordTask.execute(); diff --git a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java index c5fec8d5c97..a1f8a00d2db 100644 --- a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java @@ -4,6 +4,7 @@ import com.j256.ormlite.dao.Dao; import com.j256.ormlite.dao.DaoManager; import com.j256.ormlite.jdbc.JdbcConnectionSource; import com.j256.ormlite.stmt.QueryBuilder; +import com.j256.ormlite.stmt.SelectArg; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; @@ -55,7 +56,7 @@ public enum TableRecordRepository { public List getAfter(long endTimeMs) { try { QueryBuilder qb = dao.queryBuilder(); - qb.where().gt("endTimeMs", endTimeMs); + qb.where().gt("endTimeMs", new SelectArg(endTimeMs)); qb.orderBy("endTimeMs", true); return dao.query(qb.prepare()); } catch (SQLException ex) { diff --git a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java index b99eeed3026..36e239c89a1 100644 --- a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java @@ -4,6 +4,7 @@ import com.j256.ormlite.dao.Dao; import com.j256.ormlite.dao.DaoManager; import com.j256.ormlite.jdbc.JdbcConnectionSource; import com.j256.ormlite.stmt.QueryBuilder; +import com.j256.ormlite.stmt.SelectArg; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; @@ -70,7 +71,7 @@ public enum UserStatsRepository { public UserStats getUser(String userName) { try { QueryBuilder qb = dao.queryBuilder(); - qb.limit(1L).where().eq("userName", userName); + qb.limit(1L).where().eq("userName", new SelectArg(userName)); List users = dao.query(qb.prepare()); if (!users.isEmpty()) { return users.get(0); diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java index 65cf3baa8a6..6b1267bc897 100644 --- a/Mage/src/main/java/mage/cards/repository/CardRepository.java +++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java @@ -329,7 +329,9 @@ public enum CardRepository { public CardInfo findCard(String setCode, String cardNumber) { try { QueryBuilder queryBuilder = cardDao.queryBuilder(); - queryBuilder.limit(1L).where().eq("setCode", new SelectArg(setCode)).and().eq("cardNumber", cardNumber).and().eq("nightCard", false); + queryBuilder.limit(1L).where().eq("setCode", new SelectArg(setCode)) + .and().eq("cardNumber", new SelectArg(cardNumber)) + .and().eq("nightCard", new SelectArg(false)); List result = cardDao.query(queryBuilder.prepare()); if (!result.isEmpty()) { return result.get(0); diff --git a/Mage/src/main/java/mage/cards/repository/RepositoryUtil.java b/Mage/src/main/java/mage/cards/repository/RepositoryUtil.java index cf39f4c8b05..ea7486fe5f2 100644 --- a/Mage/src/main/java/mage/cards/repository/RepositoryUtil.java +++ b/Mage/src/main/java/mage/cards/repository/RepositoryUtil.java @@ -32,7 +32,8 @@ public final class RepositoryUtil { Dao dbVersionDao = DaoManager.createDao(connectionSource, DatabaseVersion.class); QueryBuilder queryBuilder = dbVersionDao.queryBuilder(); - queryBuilder.where().eq("entity", new SelectArg(entityName)).and().eq("version", version); + queryBuilder.where().eq("entity", new SelectArg(entityName)) + .and().eq("version", new SelectArg(version)); List dbVersions = dbVersionDao.query(queryBuilder.prepare()); if (dbVersions.isEmpty()) { @@ -56,7 +57,8 @@ public final class RepositoryUtil { Dao dbBuildDao = DaoManager.createDao(connectionSource, DatabaseBuild.class); QueryBuilder queryBuilder = dbBuildDao.queryBuilder(); - queryBuilder.where().eq("entity", new SelectArg(entityName)).and().eq("last_build", currentBuild); + queryBuilder.where().eq("entity", new SelectArg(entityName)) + .and().eq("last_build", new SelectArg(currentBuild)); List dbBuilds = dbBuildDao.query(queryBuilder.prepare()); if (dbBuilds.isEmpty()) { From 8cf681dff21681447f4a6e51184687fe6547cf9d Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sun, 17 Feb 2019 16:12:57 +0400 Subject: [PATCH 15/21] Updated libraries to latest versions and code compatibility fixes; --- Mage.Client/pom.xml | 14 ++-- .../java/mage/client/table/TablesPanel.java | 74 ++++++++++--------- .../org/mage/card/arcane/ManaSymbols.java | 2 +- Mage.Common/pom.xml | 6 +- Mage.Server/pom.xml | 18 +++-- .../mage/server/AuthorizedUserRepository.java | 9 ++- .../server/record/TableRecordRepository.java | 7 +- .../server/record/UserStatsRepository.java | 18 ++--- Mage.Stats/pom.xml | 18 ++--- Mage.Tests/pom.xml | 11 +++ Mage/pom.xml | 6 +- .../mage/cards/repository/CardRepository.java | 2 +- pom.xml | 4 +- 13 files changed, 106 insertions(+), 83 deletions(-) diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml index e9846d4204c..ae03ce324de 100644 --- a/Mage.Client/pom.xml +++ b/Mage.Client/pom.xml @@ -51,7 +51,7 @@ com.mortennobel java-image-scaling - 0.8.5 + 0.8.6 com.google.collections @@ -66,12 +66,12 @@ org.jetlang jetlang - 0.2.9 + 0.2.23 com.amazonaws aws-java-sdk-s3 - 1.11.286 + 1.11.498 com.jgoodies @@ -114,7 +114,7 @@ truevfs-profile-base net.java.truevfs jar - 0.10.8 + 0.11.1 truevfs-access-swing @@ -129,7 +129,7 @@ com.googlecode.soundlibs mp3spi - 1.9.5-1 + 1.9.5.4 javazoom @@ -154,13 +154,13 @@ org.apache.xmlgraphics batik-transcoder - 1.7 + 1.11 org.ocpsoft.prettytime prettytime - 3.2.7.Final + 4.0.2.Final diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java index ef98c013a2a..bcf85923efb 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -24,6 +24,7 @@ import org.apache.log4j.Logger; import org.mage.card.arcane.CardRendererUtils; import org.ocpsoft.prettytime.Duration; import org.ocpsoft.prettytime.PrettyTime; +import org.ocpsoft.prettytime.TimeFormat; import org.ocpsoft.prettytime.units.JustNow; import javax.swing.*; @@ -82,7 +83,7 @@ public class TablesPanel extends javax.swing.JPanel { final JToggleButton[] filterButtons; // time formater - private PrettyTime timeFormater = new PrettyTime(); + private PrettyTime timeFormater = new PrettyTime(Locale.ENGLISH); // time ago renderer TableCellRenderer timeAgoCellRenderer = new DefaultTableCellRenderer() { @@ -219,9 +220,12 @@ public class TablesPanel extends javax.swing.JPanel { // tableModel.setSession(session); // formater - timeFormater.setLocale(Locale.ENGLISH); - JustNow jn = timeFormater.getUnit(JustNow.class); - jn.setMaxQuantity(1000L * 30L); // 30 seconds gap (show "just now" from 0 to 30 secs) + // change default just now from 60 to 30 secs + // see workaround for 4.0 versions: https://github.com/ocpsoft/prettytime/issues/152 + TimeFormat timeFormat = timeFormater.removeUnit(JustNow.class); + JustNow newJustNow = new JustNow(); + newJustNow.setMaxQuantity(1000L * 30L); // 30 seconds gap (show "just now" from 0 to 30 secs) + timeFormater.registerUnit(newJustNow, timeFormat); // 1. TABLE CURRENT tableTables.createDefaultColumnsFromModel(); @@ -1377,35 +1381,35 @@ public class TablesPanel extends javax.swing.JPanel { javax.swing.GroupLayout jPanelTopLayout = new javax.swing.GroupLayout(jPanelTop); jPanelTop.setLayout(jPanelTopLayout); jPanelTopLayout.setHorizontalGroup( - jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanelTopLayout.createSequentialGroup() - .addContainerGap() - .addComponent(btnNewTable) - .addGap(6, 6, 6) - .addComponent(btnNewTournament) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnQuickStart) - .addContainerGap(792, Short.MAX_VALUE)) + jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanelTopLayout.createSequentialGroup() + .addContainerGap() + .addComponent(btnNewTable) + .addGap(6, 6, 6) + .addComponent(btnNewTournament) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnQuickStart) + .addContainerGap(792, Short.MAX_VALUE)) ); jPanelTopLayout.setVerticalGroup( - jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanelTopLayout.createSequentialGroup() - .addContainerGap() - .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnNewTable) - .addComponent(btnNewTournament)) - .addGroup(jPanelTopLayout.createSequentialGroup() - .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnQuickStart)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addContainerGap()) + jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanelTopLayout.createSequentialGroup() + .addContainerGap() + .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnNewTable) + .addComponent(btnNewTournament)) + .addGroup(jPanelTopLayout.createSequentialGroup() + .addGroup(jPanelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(filterBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnQuickStart)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(filterBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addContainerGap()) ); gridBagConstraints = new java.awt.GridBagConstraints(); @@ -1442,12 +1446,12 @@ public class TablesPanel extends javax.swing.JPanel { javax.swing.GroupLayout jPanelTablesLayout = new javax.swing.GroupLayout(jPanelTables); jPanelTables.setLayout(jPanelTablesLayout); jPanelTablesLayout.setHorizontalGroup( - jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE) + jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE) ); jPanelTablesLayout.setVerticalGroup( - jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE) + jPanelTablesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSplitPaneTables, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE) ); jSplitPane1.setLeftComponent(jPanelTables); diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java index 9de2219d32d..0a847bf92a5 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java @@ -12,7 +12,7 @@ import mage.client.util.gui.BufferedImageBuilder; import mage.client.util.gui.GuiDisplayUtil; import mage.constants.Rarity; import mage.utils.StreamUtils; -import org.apache.batik.dom.svg.SVGDOMImplementation; +import org.apache.batik.anim.dom.SVGDOMImplementation; import org.apache.batik.transcoder.TranscoderException; import org.apache.batik.transcoder.TranscoderInput; import org.apache.batik.transcoder.TranscoderOutput; diff --git a/Mage.Common/pom.xml b/Mage.Common/pom.xml index f1535ccfae1..1347b155386 100644 --- a/Mage.Common/pom.xml +++ b/Mage.Common/pom.xml @@ -34,12 +34,12 @@ org.jboss jboss-common-core - 2.2.22.GA + 2.5.0.Final jboss jboss-serialization - 1.0.3.GA + 4.2.2.GA concurrent @@ -54,7 +54,7 @@ com.google.code.gson gson - 2.8.2 + 2.8.5 diff --git a/Mage.Server/pom.xml b/Mage.Server/pom.xml index 4b762aa1d1a..d1f63fcfa66 100644 --- a/Mage.Server/pom.xml +++ b/Mage.Server/pom.xml @@ -42,7 +42,13 @@ com.sun.xml.bind jaxb-impl - 2.1.17 + 2.3.2 + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.2 log4j @@ -200,31 +206,31 @@ com.google.api-client google-api-client - 1.25.0 + 1.28.0 jar com.google.apis google-api-services-gmail - v1-rev82-1.23.0 + v1-rev20190120-1.28.0 jar com.google.oauth-client google-oauth-client-java6 - 1.25.0 + 1.28.0 jar com.google.oauth-client google-oauth-client-jetty - 1.25.0 + 1.28.0 jar javax.mail mail - 1.4.7 + 1.5.0-b01 jar diff --git a/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java b/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java index a0817049441..f1915e72f11 100644 --- a/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java +++ b/Mage.Server/src/main/java/mage/server/AuthorizedUserRepository.java @@ -9,9 +9,6 @@ import com.j256.ormlite.stmt.SelectArg; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; -import java.io.File; -import java.sql.SQLException; -import java.util.List; import mage.cards.repository.CardRepository; import mage.cards.repository.RepositoryUtil; import org.apache.log4j.Logger; @@ -21,6 +18,10 @@ import org.apache.shiro.crypto.hash.Hash; import org.apache.shiro.crypto.hash.Sha256Hash; import org.apache.shiro.crypto.hash.SimpleHash; +import java.io.File; +import java.sql.SQLException; +import java.util.List; + public enum AuthorizedUserRepository { instance; @@ -108,7 +109,7 @@ public enum AuthorizedUserRepository { public void closeDB() { try { if (dao != null && dao.getConnectionSource() != null) { - DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(); + DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(dao.getTableName()); conn.executeStatement("shutdown compact", 0); } } catch (SQLException ex) { diff --git a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java index a1f8a00d2db..6c7cbd49ea2 100644 --- a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java @@ -8,11 +8,12 @@ import com.j256.ormlite.stmt.SelectArg; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.support.DatabaseConnection; import com.j256.ormlite.table.TableUtils; +import mage.cards.repository.RepositoryUtil; +import org.apache.log4j.Logger; + import java.io.File; import java.sql.SQLException; import java.util.List; -import mage.cards.repository.RepositoryUtil; -import org.apache.log4j.Logger; public enum TableRecordRepository { @@ -68,7 +69,7 @@ public enum TableRecordRepository { public void closeDB() { try { if (dao != null && dao.getConnectionSource() != null) { - DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(); + DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(dao.getTableName()); conn.executeStatement("shutdown compact", 0); } } catch (SQLException ex) { diff --git a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java index 36e239c89a1..a7b47617d8a 100644 --- a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java @@ -94,12 +94,12 @@ public enum UserStatsRepository { public long getLatestEndTimeMs() { try { - QueryBuilder qb = dao.queryBuilder(); + QueryBuilder qb = dao.queryBuilder(); qb.orderBy("endTimeMs", false).limit(1L); - List users = dao.query(qb.prepare()); + List users = dao.query(qb.prepare()); if (!users.isEmpty()) { - return users.get(0).getEndTimeMs(); - } + return users.get(0).getEndTimeMs(); + } } catch (SQLException ex) { Logger.getLogger(UserStatsRepository.class).error("Error getting the latest end time from DB - ", ex); } @@ -111,7 +111,7 @@ public enum UserStatsRepository { public List updateUserStats() { Set updatedUsers = new HashSet<>(); // Lock the DB so that no other updateUserStats runs at the same time. - synchronized(this) { + synchronized (this) { long latestEndTimeMs = this.getLatestEndTimeMs(); List records = TableRecordRepository.instance.getAfter(latestEndTimeMs); for (TableRecord record : records) { @@ -126,9 +126,9 @@ public enum UserStatsRepository { for (ResultProtos.MatchPlayerProto player : match.getPlayersList()) { UserStats userStats = this.getUser(player.getName()); ResultProtos.UserStatsProto proto = - userStats != null - ? userStats.getProto() - : ResultProtos.UserStatsProto.newBuilder().setName(player.getName()).build(); + userStats != null + ? userStats.getProto() + : ResultProtos.UserStatsProto.newBuilder().setName(player.getName()).build(); ResultProtos.UserStatsProto.Builder builder = ResultProtos.UserStatsProto.newBuilder(proto) .setMatches(proto.getMatches() + 1); switch (player.getQuit()) { @@ -370,7 +370,7 @@ public enum UserStatsRepository { public void closeDB() { try { if (dao != null && dao.getConnectionSource() != null) { - DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(); + DatabaseConnection conn = dao.getConnectionSource().getReadWriteConnection(dao.getTableName()); conn.executeStatement("shutdown compact", 0); } } catch (SQLException ex) { diff --git a/Mage.Stats/pom.xml b/Mage.Stats/pom.xml index 086ecc8fa59..7c10572d3cf 100644 --- a/Mage.Stats/pom.xml +++ b/Mage.Stats/pom.xml @@ -43,13 +43,13 @@ net.minidev json-smart - 2.1.1 + 2.3 org.aspectj aspectjrt - 1.8.2 + 1.9.2 @@ -62,26 +62,26 @@ org.jboss.resteasy resteasy-jaxrs - 2.3.7.Final + 4.0.0.Beta5 provided ch.qos.logback logback-classic - 1.2.3 + 1.3.0-alpha4 org.apache.sling org.apache.sling.commons.json - 2.0.10 + 2.0.20 org.jboss.resteasy resteasy-multipart-provider - 2.3.1.GA + 4.0.0.Beta8 @@ -93,19 +93,19 @@ commons-httpclient commons-httpclient - 3.1 + 3.1-jbossorg-1 javax.servlet servlet-api - 2.5 + 3.0-alpha-1 joda-time joda-time - 2.7 + 2.10.1 diff --git a/Mage.Tests/pom.xml b/Mage.Tests/pom.xml index 06830c290ef..39abb0fc86f 100644 --- a/Mage.Tests/pom.xml +++ b/Mage.Tests/pom.xml @@ -64,6 +64,17 @@ mage-game-freeforall ${project.version} + + com.sun.xml.bind + jaxb-impl + 2.3.2 + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.2 + diff --git a/Mage/pom.xml b/Mage/pom.xml index 51753a31e31..80815f55ace 100644 --- a/Mage/pom.xml +++ b/Mage/pom.xml @@ -23,13 +23,13 @@ com.h2database h2 - 1.4.187 + 1.4.197 runtime com.j256.ormlite ormlite-jdbc - 4.48 + 5.1 junit @@ -38,7 +38,7 @@ com.google.protobuf protobuf-java - 3.6.0 + 3.7.0-rc1 diff --git a/Mage/src/main/java/mage/cards/repository/CardRepository.java b/Mage/src/main/java/mage/cards/repository/CardRepository.java index 6b1267bc897..8eb0b50093d 100644 --- a/Mage/src/main/java/mage/cards/repository/CardRepository.java +++ b/Mage/src/main/java/mage/cards/repository/CardRepository.java @@ -506,7 +506,7 @@ public enum CardRepository { public void closeDB() { try { if (cardDao != null && cardDao.getConnectionSource() != null) { - DatabaseConnection conn = cardDao.getConnectionSource().getReadWriteConnection(); + DatabaseConnection conn = cardDao.getConnectionSource().getReadWriteConnection(cardDao.getTableName()); conn.executeStatement("shutdown compact", 0); } } catch (SQLException ex) { diff --git a/pom.xml b/pom.xml index bc1f3ad553c..f0a5ddc41c9 100644 --- a/pom.xml +++ b/pom.xml @@ -98,7 +98,7 @@ junit junit - 4.12 + 4.13-beta-2 log4j @@ -108,7 +108,7 @@ org.slf4j slf4j-log4j12 - 1.7.25 + 1.8.0-beta2 From 872eea73269f2e868c6e22757f9789b75c4b595f Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Mon, 18 Feb 2019 21:32:20 +0100 Subject: [PATCH 16/21] small cleanups in DragCardGrid --- .../java/mage/client/cards/DragCardGrid.java | 163 ++++++++---------- 1 file changed, 75 insertions(+), 88 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java index 3d388ad9260..32d15b7b207 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java @@ -6,6 +6,7 @@ import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.*; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -35,18 +36,12 @@ import org.mage.card.arcane.CardRenderer; */ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarget { - private final static Logger LOGGER = Logger.getLogger(DragCardGrid.class); + private static final Logger LOGGER = Logger.getLogger(DragCardGrid.class); private Constants.DeckEditorMode mode; @Override public Collection dragCardList() { - ArrayList selectedCards = new ArrayList<>(); - for (CardView card : allCards) { - if (card.isSelected()) { - selectedCards.add(card); - } - } - return selectedCards; + return allCards.stream().filter(CardView::isSelected).collect(Collectors.toCollection(ArrayList::new)); } @Override @@ -62,8 +57,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Don't remove the cards, no target } else { // Remove dragged cards - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (int i = 0; i < stack.size(); ++i) { CardView card = stack.get(i); if (card.isSelected()) { @@ -160,7 +155,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } // Get the appropirate stack - ArrayList stack; + List stack; if (rowIndex < cardGrid.size() && col < cardGrid.get(0).size()) { stack = cardGrid.get(rowIndex).get(col); } else { @@ -200,8 +195,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // If we're dragging onto ourself, erase the old cards (just null them out, we will // compact the grid removing the null gaps / empty rows & cols later) if (source == this) { - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (int i = 0; i < stack.size(); ++i) { if (cards.contains(stack.get(i))) { stack.set(i, null); @@ -241,7 +236,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Add a new row if needed if (rowIndex >= cardGrid.size()) { - ArrayList> newRow = new ArrayList<>(); + List> newRow = new ArrayList<>(); if (!cardGrid.isEmpty()) { for (int colIndex = 0; colIndex < cardGrid.get(0).size(); ++colIndex) { newRow.add(new ArrayList<>()); @@ -286,7 +281,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Add a new row if needed if (rowIndex >= cardGrid.size()) { - ArrayList> newRow = new ArrayList<>(); + List> newRow = new ArrayList<>(); if (!cardGrid.isEmpty()) { for (int colIndex = 0; colIndex < cardGrid.get(0).size(); ++colIndex) { newRow.add(new ArrayList<>()); @@ -304,7 +299,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } // Get the appropirate stack - ArrayList stack = cardGrid.get(rowIndex).get(col); + List stack = cardGrid.get(rowIndex).get(col); // Figure out position in the stack based on the offsetIntoRow int stackInsertIndex = (offsetIntoStack + cardTopHeight / 2) / cardTopHeight; @@ -375,8 +370,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } public void removeSelection() { - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (int i = 0; i < stack.size(); ++i) { CardView card = stack.get(i); if (card.isSelected()) { @@ -394,11 +389,11 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg public DeckCardLayout getCardLayout() { // 2D Array to put entries into - java.util.List>> info = new ArrayList<>(); - for (ArrayList> gridRow : cardGrid) { - java.util.List> row = new ArrayList<>(); + List>> info = new ArrayList<>(); + for (List> gridRow : cardGrid) { + List> row = new ArrayList<>(); info.add(row); - for (ArrayList stack : gridRow) { + for (List stack : gridRow) { row.add(stack.stream() .map(card -> new DeckCardInfo(card.getName(), card.getCardNumber(), card.getExpansionSetCode())) .collect(Collectors.toList())); @@ -544,12 +539,12 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg public static final int COUNT_LABEL_HEIGHT = 20; public static final int GRID_PADDING = 10; - private final static ImageIcon INSERT_ROW_ICON = new ImageIcon(DragCardGrid.class.getClassLoader().getResource("editor_insert_row.png")); - private final static ImageIcon INSERT_COL_ICON = new ImageIcon(DragCardGrid.class.getClassLoader().getResource("editor_insert_col.png")); + private static final ImageIcon INSERT_ROW_ICON = new ImageIcon(DragCardGrid.class.getClassLoader().getResource("editor_insert_row.png")); + private static final ImageIcon INSERT_COL_ICON = new ImageIcon(DragCardGrid.class.getClassLoader().getResource("editor_insert_col.png")); // All of the current card views private final Map cardViews = new LinkedHashMap<>(); - private final ArrayList allCards = new ArrayList<>(); + private final List allCards = new ArrayList<>(); // Card listeners private final CardEventSource eventSource = new CardEventSource(); @@ -578,8 +573,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg final JSlider cardSizeSlider; final JLabel cardSizeSliderLabel; - final Map sortButtons = new HashMap<>(); - final HashMap selectByTypeButtons = new HashMap<>(); + final Map sortButtons = new EnumMap<>(Sort.class); + final Map selectByTypeButtons = new EnumMap<>(CardType.class); final JLabel deckNameAndCountLabel; final JLabel landCountLabel; @@ -611,11 +606,11 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // The outermost array contains multiple rows of stacks of cards // The next inner array represents a row of stacks of cards // The innermost array represents a single vertical stack of cards - private ArrayList>> cardGrid; - private ArrayList maxStackSize = new ArrayList<>(); - private final ArrayList> stackCountLabels = new ArrayList<>(); + private List>> cardGrid; + private List maxStackSize = new ArrayList<>(); + private final List> stackCountLabels = new ArrayList<>(); private Sort cardSort = Sort.CMC; - private final ArrayList selectByTypeSelected = new ArrayList<>(); + private final List selectByTypeSelected = new ArrayList<>(); private boolean separateCreatures = true; public enum Role { @@ -639,7 +634,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg public boolean separateCreatures; public int cardSize; - private final static Pattern parser = Pattern.compile("\\(([^,]*),([^,]*),([^)]*)\\)"); + private static final Pattern parser = Pattern.compile("\\(([^,]*),([^,]*),([^)]*)\\)"); public static Settings parse(String str) { Matcher m = parser.matcher(str); @@ -917,7 +912,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg ButtonGroup selectByTypeModeGroup = new ButtonGroup(); for (final CardType cardType : CardType.values()) { - if (cardType == cardType.CONSPIRACY) { + if (cardType == CardType.CONSPIRACY) { multiplesButton = new JToggleButton("Multiples"); selectByTypeButtons.put(cardType, multiplesButton); selectByTypeMode.add(multiplesButton); @@ -1045,8 +1040,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg * Deselect all cards in this DragCardGrid */ public void deselectAll() { - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (CardView card : stack) { if (card.isSelected()) { card.setSelected(false); @@ -1166,9 +1161,9 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } else { stackEndIndex = (y2 - curY) / cardTopHeight; } - ArrayList> gridRow = cardGrid.get(rowIndex); + List> gridRow = cardGrid.get(rowIndex); for (int col = 0; col < gridRow.size(); ++col) { - ArrayList stack = gridRow.get(col); + List stack = gridRow.get(col); int stackBottomBegin = curY + cardTopHeight * (stack.size()); int stackBottomEnd = curY + cardTopHeight * (stack.size() - 1) + cardHeight; for (int i = 0; i < stack.size(); ++i) { @@ -1201,8 +1196,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Resort the existing cards based on the current sort public void resort() { // First null out the grid and trim it down - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { stack.clear(); } } @@ -1243,8 +1238,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg if (cardType == CardType.CONSPIRACY) { HashMap cardNames = new HashMap<>(); - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (CardView card : stack) { if (cardNames.get(card.getName()) == null) { cardNames.put(card.getName(), card); @@ -1262,8 +1257,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg continue; } - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (CardView card : stack) { boolean s = card.isSelected() | card.getCardTypes().contains(cardType); card.setSelected(s); @@ -1276,13 +1271,13 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } if (useText) { - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (CardView card : stack) { boolean s = card.isSelected(); // Name if (!s) { - s |= card.getName().toLowerCase(Locale.ENGLISH).contains(searchStr); + s = card.getName().toLowerCase(Locale.ENGLISH).contains(searchStr); } // Sub & Super Types if (!s) { @@ -1354,21 +1349,13 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg qtys.put("wastes", 0); manaCounts = new HashMap<>(); - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (CardView card : stack) { // Type line - String t = ""; - for (CardType type : card.getCardTypes()) { - t += ' ' + type.toString(); - } - // Sub & Super Types - for (SuperType type : card.getSuperTypes()) { - t += ' ' + type.toString().toLowerCase(Locale.ENGLISH); - } - for (SubType str : card.getSubTypes()) { - t += " " + str.toString().toLowerCase(Locale.ENGLISH); - } + String t = card.getCardTypes().stream().map(CardType::toString).collect(Collectors.joining(" ")); + t += card.getSuperTypes().stream().map(st -> st.toString().toLowerCase(Locale.ENGLISH)).collect(Collectors.joining(" ")); + t += card.getSubTypes().stream().map(st -> st.toString().toLowerCase(Locale.ENGLISH)).collect(Collectors.joining(" ")); for (String qty : qtys.keySet()) { int value = qtys.get(qty); @@ -1494,7 +1481,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg } public void blingDeck() { - if (!(this.mode == Constants.DeckEditorMode.FREE_BUILDING)) { + if (this.mode != Constants.DeckEditorMode.FREE_BUILDING) { return; } @@ -1503,8 +1490,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg return; } - HashMap pimpedSets = new HashMap<>(); - HashMap pimpedCards = new HashMap<>(); + Map pimpedSets = new HashMap<>(); + Map pimpedCards = new HashMap<>(); pimpedSets.put("CP", 1); pimpedSets.put("JR", 1); pimpedSets.put("MPS", 1); @@ -1529,8 +1516,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg String[] sets = pimpedSets.keySet().toArray(new String[pimpedSets.keySet().size()]); Boolean didModify = false; - for (ArrayList> gridRow : cardGrid) { - for (ArrayList stack : gridRow) { + for (List> gridRow : cardGrid) { + for (List stack : gridRow) { for (CardView card : stack) { if (card.getSuperTypes().contains(SuperType.BASIC)) { continue; @@ -1580,9 +1567,9 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Remove all of the cards not in the cardsView boolean didModify = false; // Until contested for (int i = 0; i < cardGrid.size(); ++i) { - ArrayList> gridRow = cardGrid.get(i); + List> gridRow = cardGrid.get(i); for (int j = 0; j < gridRow.size(); ++j) { - ArrayList stack = gridRow.get(j); + List stack = gridRow.get(j); for (int k = 0; k < stack.size(); ++k) { CardView card = stack.get(k); if (!cardsView.containsKey(card.getId())) { @@ -1626,21 +1613,21 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg loadSettings(Settings.parse(layout.getSettings())); // Traverse the cards once and track them so we can pick ones to insert into the grid - Map>> trackedCards = new HashMap<>(); + Map>> trackedCards = new HashMap<>(); for (CardView newCard : cardsView.values()) { if (!cardViews.containsKey(newCard.getId())) { // Add the new card addCardView(newCard, false); // Add the new card to tracking - Map> forSetCode; + Map> forSetCode; if (trackedCards.containsKey(newCard.getExpansionSetCode())) { forSetCode = trackedCards.get(newCard.getExpansionSetCode()); } else { forSetCode = new HashMap<>(); trackedCards.put(newCard.getExpansionSetCode(), forSetCode); } - ArrayList list; + List list; if (forSetCode.containsKey(newCard.getCardNumber())) { list = forSetCode.get(newCard.getCardNumber()); } else { @@ -1654,16 +1641,16 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Now go through the layout and use it to build the cardGrid cardGrid = new ArrayList<>(); maxStackSize = new ArrayList<>(); - for (java.util.List> row : layout.getCards()) { - ArrayList> gridRow = new ArrayList<>(); + for (List> row : layout.getCards()) { + List> gridRow = new ArrayList<>(); int thisMaxStackSize = 0; cardGrid.add(gridRow); - for (java.util.List stack : row) { + for (List stack : row) { ArrayList gridStack = new ArrayList<>(); gridRow.add(gridStack); for (DeckCardInfo info : stack) { if (trackedCards.containsKey(info.getSetCode()) && trackedCards.get(info.getSetCode()).containsKey(info.getCardNum())) { - ArrayList candidates + List candidates = trackedCards.get(info.getSetCode()).get(info.getCardNum()); if (!candidates.isEmpty()) { gridStack.add(candidates.remove(0)); @@ -1678,8 +1665,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Check that there aren't any "orphans" not referenced in the layout. There should // never be any under normal operation, but as a failsafe in case the user screwed with // the file in an invalid way, sort them into the grid so that they aren't just left hanging. - for (Map> tracked : trackedCards.values()) { - for (ArrayList orphans : tracked.values()) { + for (Map> tracked : trackedCards.values()) { + for (List orphans : tracked.values()) { for (CardView orphan : orphans) { LOGGER.info("Orphan when setting with layout: "); sortIntoGrid(orphan); @@ -1733,7 +1720,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg AbstractButton button = selectByTypeButtons.get(cardType); String text = cardType.toString(); int numCards = getCount(cardType); - if (cardType == cardType.CONSPIRACY) { + if (cardType == CardType.CONSPIRACY) { continue; } @@ -1908,7 +1895,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg maxStackSize.add(0, 0); } // What row to add it to? - ArrayList> targetRow; + List> targetRow; if (separateCreatures && !newCard.isCreature()) { // Ensure row 2 exists if (cardGrid.size() < 2) { @@ -1929,7 +1916,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg for (int currentColumn = 0; currentColumn < cardGrid.get(0).size(); ++currentColumn) { // Find an item from this column CardView cardInColumn = null; - for (ArrayList> gridRow : cardGrid) { + for (List> gridRow : cardGrid) { for (CardView card : gridRow.get(currentColumn)) { cardInColumn = card; break; @@ -1974,9 +1961,9 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg private void trimGrid() { // Compact stacks and rows for (int rowIndex = 0; rowIndex < cardGrid.size(); ++rowIndex) { - ArrayList> gridRow = cardGrid.get(rowIndex); + List> gridRow = cardGrid.get(rowIndex); int rowMaxStackSize = 0; - for (ArrayList stack : gridRow) { + for (List stack : gridRow) { // Clear out nulls in the stack for (int i = 0; i < stack.size(); ++i) { if (stack.get(i) == null) { @@ -2000,15 +1987,15 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg if (!cardGrid.isEmpty()) { for (int colIndex = 0; colIndex < cardGrid.get(0).size(); ++colIndex) { boolean hasContent = false; // Until contested - for (int rowIndex = 0; rowIndex < cardGrid.size(); ++rowIndex) { - if (!cardGrid.get(rowIndex).get(colIndex).isEmpty()) { + for (List> aCardGrid : cardGrid) { + if (!aCardGrid.get(colIndex).isEmpty()) { hasContent = true; break; } } if (!hasContent) { - for (int rowIndex = 0; rowIndex < cardGrid.size(); ++rowIndex) { - cardGrid.get(rowIndex).remove(colIndex); + for (List> aCardGrid : cardGrid) { + aCardGrid.remove(colIndex); } --colIndex; } @@ -2017,13 +2004,13 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg // Clean up extra column header count labels while (stackCountLabels.size() > cardGrid.size()) { - ArrayList labels = stackCountLabels.remove(cardGrid.size()); + List labels = stackCountLabels.remove(cardGrid.size()); for (JLabel label : labels) { cardContent.remove(label); } } int colCount = cardGrid.isEmpty() ? 0 : cardGrid.get(0).size(); - for (ArrayList labels : stackCountLabels) { + for (List labels : stackCountLabels) { while (labels.size() > colCount) { cardContent.remove(labels.remove(colCount)); } @@ -2056,9 +2043,9 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg int maxWidth = 0; for (int rowIndex = 0; rowIndex < cardGrid.size(); ++rowIndex) { int rowMaxStackSize = 0; - ArrayList> gridRow = cardGrid.get(rowIndex); + List> gridRow = cardGrid.get(rowIndex); for (int colIndex = 0; colIndex < gridRow.size(); ++colIndex) { - ArrayList stack = gridRow.get(colIndex); + List stack = gridRow.get(colIndex); // Stack count label if (stackCountLabels.size() <= rowIndex) { From 056226d83c710959cb1287540a9283ff9c96b400 Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Tue, 19 Feb 2019 21:51:45 +0100 Subject: [PATCH 17/21] Sonar fixes 19022019 --- .../java/mage/client/cards/DragCardGrid.java | 2 +- .../mage/client/components/MageRoundPane.java | 4 ++-- .../components/ext/dlg/DialogManager.java | 2 +- .../client/components/ext/dlg/DlgParams.java | 15 +++++++------- .../components/ext/dlg/IDialogPanel.java | 2 +- .../components/ext/dlg/impl/ChoiceDialog.java | 20 +++++++++---------- .../mage/client/components/tray/MageTray.java | 1 - .../deck/generator/DeckGeneratorCMC.java | 5 +++-- .../generator/RatioAdjustingSliderPanel.java | 2 +- .../mage/client/deckeditor/CardSelector.java | 4 +--- .../java/mage/client/deckeditor/DeckArea.java | 2 +- .../client/deckeditor/DeckEditorPanel.java | 12 +++++------ .../client/deckeditor/SortSettingBase.java | 2 +- .../client/deckeditor/SortSettingDeck.java | 2 +- .../client/deckeditor/SortSettingDraft.java | 2 +- .../collection/viewer/MageBook.java | 4 ++-- .../dialog/RandomPacksSelectorDialog.java | 2 +- .../java/mage/client/util/GUISizeHelper.java | 6 +++--- .../java/mage/client/util/ImageCaches.java | 2 +- .../client/util/TransformedImageCache.java | 2 +- .../card/arcane/CardPanelComponentImpl.java | 2 +- .../mage/card/arcane/CardPanelRenderImpl.java | 2 +- .../java/org/mage/card/arcane/GlowText.java | 4 ++-- .../mage/card/arcane/ModernCardRenderer.java | 2 +- .../main/java/mage/remote/SessionImpl.java | 2 +- .../src/main/java/mage/utils/MageVersion.java | 12 +++++------ .../src/main/java/mage/server/Session.java | 4 ++-- .../java/mage/server/draft/DraftSession.java | 2 +- .../mage/server/game/GameSessionWatcher.java | 2 +- .../server/tournament/TournamentSession.java | 2 +- .../src/mage/cards/a/AdaptiveAutomaton.java | 2 +- Mage.Sets/src/mage/cards/a/AgentOfShauku.java | 2 +- .../src/mage/cards/a/AltacBloodseeker.java | 2 +- Mage.Sets/src/mage/cards/a/AmrouSeekers.java | 2 +- .../src/mage/cards/a/AngelOfSanctions.java | 2 +- Mage.Sets/src/mage/cards/a/AngelsFeather.java | 2 +- Mage.Sets/src/mage/cards/a/AngrathsFury.java | 2 +- Mage.Sets/src/mage/cards/a/AnimateDead.java | 2 +- Mage.Sets/src/mage/cards/a/AquitectsWill.java | 2 +- .../src/mage/cards/a/ArenaOfTheAncients.java | 2 +- Mage.Sets/src/mage/cards/a/AvoidFate.java | 2 +- Mage.Sets/src/mage/cards/a/AyeshaTanaka.java | 2 +- .../src/mage/cards/b/BanisherPriest.java | 2 +- .../src/mage/cards/b/BanishingLight.java | 2 +- .../src/mage/cards/b/BaruFistOfKrosa.java | 2 +- .../src/mage/cards/b/BastionProtector.java | 2 +- .../src/mage/cards/b/BishopOfBinding.java | 2 +- .../src/mage/cards/b/BladewingsThrall.java | 2 +- Mage.Sets/src/mage/cards/b/BlightHerder.java | 2 +- .../src/mage/cards/b/BloodCursedKnight.java | 4 ++-- Mage.Sets/src/mage/cards/b/Bloodbriar.java | 2 +- .../src/mage/cards/b/BloodswornSteward.java | 2 +- Mage.Sets/src/mage/cards/b/BogGlider.java | 2 +- Mage.Sets/src/mage/cards/b/BoilingEarth.java | 2 +- .../src/mage/cards/b/BoundByMoonsilver.java | 2 +- .../src/mage/cards/b/BrandedBrawlers.java | 2 +- Mage.Sets/src/mage/cards/b/BrownOuphe.java | 2 +- .../src/mage/cards/b/BudokaGardener.java | 2 +- Mage.Sets/src/mage/cards/b/BurningEarth.java | 2 +- .../mage/cards/c/CapturedByTheConsulate.java | 2 +- Mage.Sets/src/mage/cards/c/CastOut.java | 2 +- .../src/mage/cards/c/CatacombSifter.java | 2 +- .../src/mage/cards/c/ChampionOfDusk.java | 2 +- .../src/mage/cards/c/ChampionOfLambholt.java | 2 +- .../src/mage/cards/c/ChandrasDefeat.java | 2 +- .../src/mage/cards/c/ChandrasOutburst.java | 2 +- Mage.Sets/src/mage/cards/c/ChimericEgg.java | 2 +- Mage.Sets/src/mage/cards/c/CitadelSiege.java | 6 +++--- Mage.Sets/src/mage/cards/c/CloseQuarters.java | 2 +- .../src/mage/cards/c/ConclaveTribunal.java | 2 +- .../src/mage/cards/c/ConfiscationCoup.java | 2 +- Mage.Sets/src/mage/cards/c/Confound.java | 2 +- .../src/mage/cards/c/ConsulsShieldguard.java | 2 +- .../src/mage/cards/c/CrimsonHonorGuard.java | 2 +- .../mage/cards/c/CrossroadsConsecrator.java | 2 +- Mage.Sets/src/mage/cards/c/CruelRevival.java | 4 ++-- Mage.Sets/src/mage/cards/c/Cryptoplasm.java | 2 +- .../src/mage/cards/c/CultOfTheWaxingMoon.java | 2 +- .../src/mage/cards/d/DampeningPulse.java | 2 +- .../src/mage/cards/d/DanceOfTheDead.java | 2 +- .../src/mage/cards/d/DaringDemolition.java | 2 +- Mage.Sets/src/mage/cards/d/DarkSalvation.java | 2 +- .../src/mage/cards/d/DarkslickShores.java | 2 +- .../src/mage/cards/d/DauntlessDourbark.java | 6 +++--- .../src/mage/cards/d/DeadeyeHarpooner.java | 2 +- .../src/mage/cards/d/DeathlessBehemoth.java | 2 +- .../src/mage/cards/d/DefiantSalvager.java | 2 +- Mage.Sets/src/mage/cards/d/DemonsHorn.java | 2 +- .../src/mage/cards/d/DespoticScepter.java | 2 +- .../src/mage/cards/d/DinOfTheFireherd.java | 4 ++-- .../src/mage/cards/d/DiplomaticEscort.java | 2 +- .../src/mage/cards/d/DireUndercurrents.java | 8 ++++---- .../mage/cards/d/DissensionInTheRanks.java | 2 +- .../src/mage/cards/d/DjinnIlluminatus.java | 2 +- Mage.Sets/src/mage/cards/d/Domineer.java | 2 +- Mage.Sets/src/mage/cards/d/DoubtlessOne.java | 2 +- .../mage/cards/d/DragonlordsPrerogative.java | 2 +- Mage.Sets/src/mage/cards/d/DragonsClaw.java | 2 +- .../src/mage/cards/d/DragonsEyeSavants.java | 2 +- .../src/mage/cards/d/DramaticReversal.java | 2 +- .../src/mage/cards/d/DuneBroodNephilim.java | 2 +- Mage.Sets/src/mage/cards/d/DungroveElder.java | 2 +- Mage.Sets/src/mage/cards/d/DustStalker.java | 2 +- .../src/mage/cards/e/EarlOfSquirrel.java | 2 +- Mage.Sets/src/mage/cards/e/EddytrailHawk.java | 2 +- .../src/mage/cards/e/ElectrostaticBolt.java | 2 +- .../src/mage/cards/e/ElvishBranchbender.java | 2 +- Mage.Sets/src/mage/cards/e/EnergyStorm.java | 2 +- Mage.Sets/src/mage/cards/e/ErebossTitan.java | 2 +- .../src/mage/cards/e/EtaliPrimalStorm.java | 2 +- .../src/mage/cards/e/ExtractorDemon.java | 2 +- Mage.Sets/src/mage/cards/e/EzurisBrigade.java | 4 ++-- .../src/mage/cards/f/FairgroundsWarden.java | 2 +- .../mage/cards/f/ForerunnerOfSlaughter.java | 2 +- .../src/mage/cards/f/ForiysianTotem.java | 2 +- Mage.Sets/src/mage/cards/f/FoundryHornet.java | 2 +- .../src/mage/cards/f/FreyaliseSupplicant.java | 2 +- Mage.Sets/src/mage/cards/f/FrontierSiege.java | 4 ++-- Mage.Sets/src/mage/cards/g/GOTOJAIL.java | 2 +- Mage.Sets/src/mage/cards/g/GaeasLiege.java | 2 +- .../src/mage/cards/g/GangrenousZombies.java | 2 +- Mage.Sets/src/mage/cards/g/GeneralTazri.java | 2 +- Mage.Sets/src/mage/cards/g/GhalmasWarden.java | 4 ++-- .../src/mage/cards/g/GideonBattleForged.java | 2 +- .../src/mage/cards/g/GideonsResolve.java | 2 +- .../src/mage/cards/g/GiltLeafWinnower.java | 2 +- .../src/mage/cards/g/GlimmerpointStag.java | 2 +- .../src/mage/cards/g/GnarlrootTrapper.java | 2 +- .../src/mage/cards/g/GoblinChainwhirler.java | 2 +- .../src/mage/cards/g/GoblinTrenches.java | 2 +- Mage.Sets/src/mage/cards/g/Gomazoa.java | 11 ++++++---- .../src/mage/cards/g/GraspingCurrent.java | 2 +- .../src/mage/cards/g/GravityNegator.java | 2 +- Mage.Sets/src/mage/cards/g/GravitySphere.java | 2 +- Mage.Sets/src/mage/cards/h/HagHedgeMage.java | 4 ++-- .../src/mage/cards/h/HammerOfNazahn.java | 2 +- .../src/mage/cards/h/HarbingerOfTheTides.java | 2 +- Mage.Sets/src/mage/cards/h/Havoc.java | 2 +- .../src/mage/cards/h/HazoretsUndyingFury.java | 2 +- Mage.Sets/src/mage/cards/h/HeartWolf.java | 2 +- .../src/mage/cards/h/HedronAlignment.java | 4 ++-- .../src/mage/cards/h/HematiteTalisman.java | 2 +- .../src/mage/cards/h/HiddenPredators.java | 2 +- .../src/mage/cards/h/HieromancersCage.java | 2 +- Mage.Sets/src/mage/cards/h/Hivestone.java | 2 +- .../mage/cards/h/HondenOfCleansingFire.java | 2 +- .../mage/cards/h/HondenOfInfiniteRage.java | 2 +- .../src/mage/cards/h/HondenOfLifesWeb.java | 2 +- .../src/mage/cards/h/HondenOfNightsReach.java | 2 +- .../src/mage/cards/h/HondenOfSeeingWinds.java | 2 +- Mage.Sets/src/mage/cards/h/HoodedHorror.java | 2 +- Mage.Sets/src/mage/cards/h/HordeAmbusher.java | 2 +- .../src/mage/cards/h/HordeOfNotions.java | 2 +- Mage.Sets/src/mage/cards/h/HostageTaker.java | 2 +- .../src/mage/cards/h/HoundOfTheFarbogs.java | 2 +- Mage.Sets/src/mage/cards/h/HungryLynx.java | 4 ++-- .../src/mage/cards/h/HydromorphGuardian.java | 2 +- .../src/mage/cards/h/HydromorphGull.java | 2 +- Mage.Sets/src/mage/cards/i/IdentityThief.java | 2 +- .../src/mage/cards/i/ImmobilizerEldrazi.java | 2 +- .../src/mage/cards/i/InfernalTribute.java | 2 +- Mage.Sets/src/mage/cards/i/Intervene.java | 2 +- .../src/mage/cards/i/InvasiveSurgery.java | 2 +- .../src/mage/cards/i/IroncladSlayer.java | 2 +- .../src/mage/cards/i/IslandSanctuary.java | 2 +- Mage.Sets/src/mage/cards/i/IsolationZone.java | 2 +- .../src/mage/cards/i/IxalansBinding.java | 2 +- .../src/mage/cards/k/KalonianTwingrove.java | 2 +- Mage.Sets/src/mage/cards/k/KorEntanglers.java | 2 +- .../mage/cards/k/KothophedSoulHoarder.java | 2 +- .../src/mage/cards/l/LapisLazuliTalisman.java | 2 +- .../mage/cards/l/LiberatingCombustion.java | 2 +- .../src/mage/cards/l/LightningCloud.java | 2 +- .../src/mage/cards/l/LilianasInfluence.java | 4 ++-- .../src/mage/cards/m/MalachiteTalisman.java | 2 +- Mage.Sets/src/mage/cards/m/ManaWeb.java | 2 +- .../src/mage/cards/m/MaraudingMaulhorn.java | 2 +- .../src/mage/cards/m/MausoleumHarpy.java | 2 +- .../src/mage/cards/m/MerchantsDockhand.java | 2 +- Mage.Sets/src/mage/cards/m/Mirrorworks.java | 2 +- Mage.Sets/src/mage/cards/m/MoltenSentry.java | 2 +- Mage.Sets/src/mage/cards/m/MoonlightHunt.java | 4 ++-- .../src/mage/cards/m/MoriokScavenger.java | 2 +- .../src/mage/cards/m/MurderousCompulsion.java | 2 +- Mage.Sets/src/mage/cards/n/NacreTalisman.java | 2 +- Mage.Sets/src/mage/cards/n/NaturesWay.java | 2 +- Mage.Sets/src/mage/cards/n/Necromancy.java | 2 +- Mage.Sets/src/mage/cards/n/NettlingImp.java | 2 +- .../src/mage/cards/n/NeurokTransmuter.java | 2 +- .../mage/cards/n/NiambiFaithfulHealer.java | 2 +- Mage.Sets/src/mage/cards/n/NissasDefeat.java | 2 +- .../src/mage/cards/n/NissasJudgment.java | 6 +++--- .../src/mage/cards/n/NoggleHedgeMage.java | 4 ++-- Mage.Sets/src/mage/cards/n/NutCollector.java | 2 +- Mage.Sets/src/mage/cards/o/OathOfChandra.java | 2 +- Mage.Sets/src/mage/cards/o/OathOfLimDul.java | 2 +- Mage.Sets/src/mage/cards/o/OathOfNissa.java | 2 +- Mage.Sets/src/mage/cards/o/OathOfTeferi.java | 2 +- .../src/mage/cards/o/OgreBattledriver.java | 2 +- Mage.Sets/src/mage/cards/o/OnyxTalisman.java | 2 +- Mage.Sets/src/mage/cards/o/OpenTheArmory.java | 8 ++++---- Mage.Sets/src/mage/cards/o/OrchardSpirit.java | 2 +- Mage.Sets/src/mage/cards/o/OupheVandals.java | 2 +- Mage.Sets/src/mage/cards/o/OutpostSiege.java | 4 ++-- Mage.Sets/src/mage/cards/p/PalaceJailer.java | 2 +- Mage.Sets/src/mage/cards/p/PalaceSiege.java | 4 ++-- Mage.Sets/src/mage/cards/p/PathOfMettle.java | 4 ++-- .../src/mage/cards/p/PeopleOfTheWoods.java | 2 +- .../mage/cards/p/PersonalEnergyShield.java | 2 +- .../src/mage/cards/p/PitilessPlunderer.java | 2 +- .../src/mage/cards/p/PlanarOutburst.java | 2 +- .../src/mage/cards/p/PoisonbellyOgre.java | 2 +- Mage.Sets/src/mage/cards/p/Portcullis.java | 2 +- .../src/mage/cards/p/PrimalForcemage.java | 2 +- .../src/mage/cards/p/PrimalWellspring.java | 2 +- .../mage/cards/p/ProwlingNightstalker.java | 2 +- .../src/mage/cards/p/PyromancersGoggles.java | 2 +- .../src/mage/cards/r/RadiantDestiny.java | 2 +- .../src/mage/cards/r/RagingSwordtooth.java | 2 +- Mage.Sets/src/mage/cards/r/RalsDispersal.java | 2 +- Mage.Sets/src/mage/cards/r/RamunapHydra.java | 2 +- .../src/mage/cards/r/RebuffTheWicked.java | 2 +- .../src/mage/cards/r/RecklessBushwhacker.java | 2 +- .../src/mage/cards/r/RecklessCohort.java | 2 +- Mage.Sets/src/mage/cards/r/ReflectorMage.java | 2 +- .../mage/cards/r/RemorselessPunishment.java | 2 +- .../src/mage/cards/r/RhythmicWaterVortex.java | 2 +- .../src/mage/cards/r/RingOfImmortals.java | 2 +- .../src/mage/cards/r/RiptideLaboratory.java | 2 +- Mage.Sets/src/mage/cards/r/RoilingWaters.java | 2 +- .../src/mage/cards/r/RoilmagesTrick.java | 2 +- Mage.Sets/src/mage/cards/r/RootsOfLife.java | 4 ++-- Mage.Sets/src/mage/cards/r/RotShambler.java | 2 +- .../src/mage/cards/r/RuinInTheirWake.java | 2 +- .../src/mage/cards/r/RuinsOfOranRief.java | 2 +- Mage.Sets/src/mage/cards/r/Rust.java | 2 +- .../src/mage/cards/r/RuthlessRipper.java | 2 +- .../src/mage/cards/s/SaddlebackLagac.java | 4 ++-- Mage.Sets/src/mage/cards/s/SaiTok.java | 3 +-- Mage.Sets/src/mage/cards/s/Sailmonger.java | 1 - Mage.Sets/src/mage/cards/s/Saltblast.java | 10 ++++++---- Mage.Sets/src/mage/cards/s/Scapeshift.java | 4 ++-- .../src/mage/cards/s/ScourgeOfValkas.java | 2 +- .../src/mage/cards/s/ScreechingSliver.java | 4 ++-- Mage.Sets/src/mage/cards/s/SealAway.java | 2 +- Mage.Sets/src/mage/cards/s/Seedtime.java | 4 ++-- .../cards/s/SentinelOfThePearlTrident.java | 2 +- .../src/mage/cards/s/SerraInquisitors.java | 2 +- .../mage/cards/s/SetonKrosanProtector.java | 2 +- Mage.Sets/src/mage/cards/s/ShaakHerd.java | 2 +- Mage.Sets/src/mage/cards/s/SheerDrop.java | 2 +- .../src/mage/cards/s/ShredsOfSanity.java | 4 ++-- Mage.Sets/src/mage/cards/s/SigardasAid.java | 2 +- Mage.Sets/src/mage/cards/s/SignalPest.java | 2 +- Mage.Sets/src/mage/cards/s/SnakePit.java | 2 +- .../src/mage/cards/s/SomberwaldAlpha.java | 2 +- .../src/mage/cards/s/SoultetherGolem.java | 2 +- Mage.Sets/src/mage/cards/s/SpellQueller.java | 2 +- Mage.Sets/src/mage/cards/s/StasisSnare.java | 2 +- .../src/mage/cards/s/StensiaInnkeeper.java | 2 +- .../mage/cards/s/SubterraneanShambler.java | 2 +- .../src/mage/cards/s/SunBlessedMount.java | 2 +- .../src/mage/cards/s/SuspensionField.java | 2 +- .../src/mage/cards/s/SwiftReckoning.java | 2 +- .../mage/cards/t/TamiyoFieldResearcher.java | 2 +- .../mage/cards/t/TawnosUrzasApprentice.java | 2 +- .../src/mage/cards/t/TeferisResponse.java | 2 +- .../src/mage/cards/t/TelJiladStylus.java | 2 +- Mage.Sets/src/mage/cards/t/TelJiladWolf.java | 2 +- .../src/mage/cards/t/TemurBattleRage.java | 2 +- .../src/mage/cards/t/TeysaOrzhovScion.java | 4 ++-- .../src/mage/cards/t/TezzeretsBetrayal.java | 2 +- Mage.Sets/src/mage/cards/t/ThirstingAxe.java | 2 +- Mage.Sets/src/mage/cards/t/ThopterArrest.java | 2 +- .../src/mage/cards/t/ThornbowArcher.java | 2 +- .../src/mage/cards/t/ThundermawHellkite.java | 2 +- Mage.Sets/src/mage/cards/t/TrapjawTyrant.java | 2 +- .../src/mage/cards/t/TreefolkSeedlings.java | 2 +- .../src/mage/cards/t/TreetopRangers.java | 2 +- Mage.Sets/src/mage/cards/t/TreetopScout.java | 2 +- Mage.Sets/src/mage/cards/t/TurnAside.java | 2 +- .../src/mage/cards/u/UlamogsDespoiler.java | 2 +- .../src/mage/cards/u/UlamogsNullifier.java | 2 +- .../src/mage/cards/u/UnravelingMummy.java | 2 +- .../mage/cards/u/UnstableShapeshifter.java | 2 +- .../src/mage/cards/u/UnstoppableAsh.java | 2 +- .../src/mage/cards/v/VanquishersBanner.java | 2 +- .../src/mage/cards/v/VastwoodAnimist.java | 2 +- .../src/mage/cards/v/VelaTheNightClad.java | 2 +- .../src/mage/cards/v/VerdantCrescendo.java | 2 +- .../src/mage/cards/v/VeteranBrawlers.java | 2 +- .../src/mage/cards/v/VigilantMartyr.java | 2 +- Mage.Sets/src/mage/cards/v/VileAggregate.java | 2 +- Mage.Sets/src/mage/cards/v/VisageOfBolas.java | 2 +- .../src/mage/cards/v/VorelOfTheHullClade.java | 2 +- Mage.Sets/src/mage/cards/v/VraskasScorn.java | 2 +- .../src/mage/cards/v/VraskasStoneglare.java | 2 +- Mage.Sets/src/mage/cards/w/WalkThePlank.java | 2 +- Mage.Sets/src/mage/cards/w/WarsToll.java | 4 ++-- .../src/mage/cards/w/WatcherOfTheRoost.java | 2 +- Mage.Sets/src/mage/cards/w/WaxingMoon.java | 2 +- .../src/mage/cards/w/WeaverOfLightning.java | 2 +- Mage.Sets/src/mage/cards/w/WildInstincts.java | 2 +- Mage.Sets/src/mage/cards/w/WildPair.java | 2 +- .../src/mage/cards/w/WortTheRaidmother.java | 2 +- .../src/mage/cards/z/ZulaportEnforcer.java | 2 +- .../abilities/keywords/OfferingTest.java | 2 +- .../mage/test/serverside/PlayGameTest.java | 2 +- .../test/serverside/TestPlayRandomGame.java | 2 +- .../common/FetchLandActivatedAbility.java | 9 +++------ .../LeavesBattlefieldAllTriggeredAbility.java | 2 +- .../abilities/costs/mana/ManaSymbols.java | 4 ++-- .../mage/abilities/keyword/AdaptAbility.java | 2 +- .../abilities/keyword/CascadeAbility.java | 2 +- .../mage/abilities/keyword/HauntAbility.java | 4 ++-- .../abilities/keyword/SoulbondAbility.java | 2 +- .../abilities/keyword/SunburstAbility.java | 4 ++-- .../main/java/mage/cards/ExpansionSet.java | 4 ++-- .../command/planes/FieldsOfSummerPlane.java | 2 +- .../mage/game/permanent/token/AngelToken.java | 2 +- .../mage/game/permanent/token/BatToken.java | 2 +- .../mage/game/permanent/token/BeastToken.java | 2 +- .../game/permanent/token/BeastToken2.java | 2 +- .../permanent/token/BelzenlokClericToken.java | 2 +- .../permanent/token/BelzenlokDemonToken.java | 2 +- .../token/BrudicladTelchorMyrToken.java | 2 +- .../mage/game/permanent/token/CatToken.java | 2 +- .../game/permanent/token/CatWarriorToken.java | 2 +- .../game/permanent/token/CentaurToken.java | 2 +- .../token/ChainersTormentNightmareToken.java | 2 +- .../permanent/token/ClueArtifactToken.java | 2 +- .../permanent/token/DeathtouchRatToken.java | 2 +- .../token/DokaiWeaverofLifeToken.java | 2 +- .../game/permanent/token/DragonToken.java | 2 +- .../game/permanent/token/DragonToken2.java | 2 +- .../game/permanent/token/DragonTokenGold.java | 2 +- .../permanent/token/EdgarMarkovToken.java | 2 +- .../permanent/token/EldraziHorrorToken.java | 2 +- .../permanent/token/EldraziScionToken.java | 2 +- .../permanent/token/EldraziSpawnToken.java | 2 +- .../permanent/token/ElementalShamanToken.java | 2 +- .../game/permanent/token/ElementalToken.java | 2 +- .../game/permanent/token/ElephantToken.java | 2 +- .../mage/game/permanent/token/ElfToken.java | 2 +- .../permanent/token/FaerieRogueToken.java | 2 +- .../token/FreyaliseLlanowarsFuryToken.java | 2 +- .../mage/game/permanent/token/GermToken.java | 2 +- .../mage/game/permanent/token/GoatToken.java | 2 +- .../game/permanent/token/GoblinToken.java | 2 +- .../mage/game/permanent/token/GoldToken.java | 2 +- .../mage/game/permanent/token/GolemToken.java | 2 +- .../permanent/token/HuntedCentaurToken.java | 2 +- .../token/HuntedDragonKnightToken.java | 2 +- .../game/permanent/token/InsectToken.java | 2 +- ...KalonianTwingroveTreefolkWarriorToken.java | 2 +- .../permanent/token/KarnConstructToken.java | 2 +- .../token/KaroxBladewingDragonToken.java | 2 +- .../game/permanent/token/KnightToken.java | 2 +- .../token/LeafdrakeRoostDrakeToken.java | 2 +- .../mage/game/permanent/token/MyrToken.java | 2 +- .../OviyaPashiriSageLifecrafterToken.java | 2 +- .../mage/game/permanent/token/PlantToken.java | 2 +- .../mage/game/permanent/token/PrismToken.java | 2 +- .../game/permanent/token/SaprolingToken.java | 2 +- .../mage/game/permanent/token/ServoToken.java | 2 +- .../mage/game/permanent/token/SnakeToken.java | 2 +- .../game/permanent/token/SoldierToken.java | 2 +- .../token/SoldierTokenWithHaste.java | 2 +- .../game/permanent/token/SpiderToken.java | 2 +- .../game/permanent/token/SpiritToken.java | 2 +- .../permanent/token/SpiritWhiteToken.java | 2 +- .../game/permanent/token/SquirrelToken.java | 2 +- .../token/ThopterColorlessToken.java | 2 +- .../game/permanent/token/ThrullToken.java | 2 +- ...itaniaProtectorOfArgothElementalToken.java | 2 +- .../game/permanent/token/TreasureToken.java | 2 +- .../token/UtvaraHellkiteDragonToken.java | 2 +- .../permanent/token/ValdukElementalToken.java | 2 +- .../token/WasitoraCatDragonToken.java | 2 +- .../mage/game/permanent/token/WolfToken.java | 2 +- .../mage/game/permanent/token/WurmToken2.java | 2 +- .../mage/game/permanent/token/WurmToken3.java | 2 +- .../permanent/token/ZombieKnightToken.java | 2 +- .../game/permanent/token/ZombieToken.java | 2 +- .../TargetPermanentOrPlayerWithCounter.java | 10 +++++----- 385 files changed, 472 insertions(+), 475 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java index 32d15b7b207..6364c83f9b9 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java @@ -1260,7 +1260,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg for (List> gridRow : cardGrid) { for (List stack : gridRow) { for (CardView card : stack) { - boolean s = card.isSelected() | card.getCardTypes().contains(cardType); + boolean s = card.isSelected() || card.getCardTypes().contains(cardType); card.setSelected(s); cardViews.get(card.getId()).update(card); } diff --git a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java index 39e968074df..7d5e2c1fd08 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java +++ b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java @@ -36,7 +36,7 @@ public class MageRoundPane extends JPanel { IMAGE_CACHE = ImageCaches.register(new MapMaker().softValues().makeComputingMap((Function) key -> createImage(key))); } - private final static class ShadowKey { + private static final class ShadowKey { final int width; final int height; @@ -76,7 +76,7 @@ public class MageRoundPane extends JPanel { } } - private final static class Key { + private static final class Key { final int width; final int height; diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java index 329ff3ec0ed..89cf45f1c1a 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java @@ -20,7 +20,7 @@ import java.util.UUID; public class DialogManager extends JComponent implements MouseListener, MouseMotionListener { - private final static Map dialogManagers = new HashMap<>(); + private static final Map dialogManagers = new HashMap<>(); public static DialogManager getManager(UUID gameId) { if (!dialogManagers.containsKey(gameId)) { diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java index 0eeac96eb3a..f4ad229f93e 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java @@ -8,6 +8,7 @@ import mage.view.CardsView; import java.awt.*; import java.util.ArrayList; import java.util.HashSet; +import java.util.Set; import java.util.UUID; /** @@ -26,9 +27,9 @@ public class DlgParams { private int playerID; private CardsView cards; - private ArrayList stringList; + private java.util.List stringList; //private ArrayList deckList; - private ArrayList objectList; + private java.util.List objectList; private String title; private int opponentID; @@ -38,7 +39,7 @@ public class DlgParams { boolean isAI = false; - public HashSet manaChoices = new HashSet<>(); + public Set manaChoices = new HashSet<>(); public int getPlayerID() { return playerID; @@ -74,11 +75,11 @@ public class DlgParams { this.message = message; } - public HashSet getManaChoices() { + public Set getManaChoices() { return manaChoices; } - public void setManaChoices(HashSet manaChoices) { + public void setManaChoices(Set manaChoices) { this.manaChoices = manaChoices; } @@ -98,7 +99,7 @@ public class DlgParams { this.isChooseAbility = isChooseAbility; } - public ArrayList getStringList() { + public java.util.List getStringList() { return stringList; } @@ -114,7 +115,7 @@ public class DlgParams { this.deckList = deckList; }*/ - public ArrayList getObjectList() { + public java.util.List getObjectList() { return objectList; } diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/IDialogPanel.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/IDialogPanel.java index 5720341ee97..f143ea9ea92 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/IDialogPanel.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/IDialogPanel.java @@ -10,7 +10,7 @@ import java.awt.*; /** * @author mw, noxx */ -abstract public class IDialogPanel extends JXPanel { +public abstract class IDialogPanel extends JXPanel { private DlgParams params; private Dimension cardDimension; diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java index 938a99483ab..13594995e7e 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/impl/ChoiceDialog.java @@ -50,11 +50,12 @@ public class ChoiceDialog extends IDialogPanel { private boolean isCancelStopsPlaying = true; private final DlgParams params; - + private final String title; /** * This is the default constructor + * * @param params * @param title */ @@ -130,18 +131,18 @@ public class ChoiceDialog extends IDialogPanel { return; } - ArrayList toRemove = new ArrayList<>(); + java.util.List toRemove = new ArrayList<>(); for (int i = getComponentCount() - 1; i > 0; i--) { Component o = getComponent(i); if (o instanceof MageCard) { toRemove.add(o); } } - for (int i = 0; i < toRemove.size(); i++) { - remove(toRemove.get(i)); + for (Component aToRemove : toRemove) { + remove(aToRemove); } - ArrayList cardList = new ArrayList<>(cards.values()); + java.util.List cardList = new ArrayList<>(cards.values()); int width = SettingsManager.instance.getCardSize().width; int height = SettingsManager.instance.getCardSize().height; @@ -163,7 +164,7 @@ public class ChoiceDialog extends IDialogPanel { CardView card = cardList.get(i); MageCard cardImg = Plugins.instance.getMageCard(card, bigCard, getCardDimension(), gameId, true, true); - cardImg.setLocation(dx, dy + j*(height + 30)); + cardImg.setLocation(dx, dy + j * (height + 30)); add(cardImg); dx += (width + 20); @@ -237,11 +238,8 @@ public class ChoiceDialog extends IDialogPanel { int h = getDlgParams().rect.height - 90; jButtonNextPage.setBounds(new Rectangle(w / 2 + 45, h - 50, 60, 60)); - if (maxPages > 1) { - jButtonNextPage.setVisible(true); - } else { - jButtonNextPage.setVisible(false); - } + jButtonNextPage.setVisible(maxPages > 1); + jButtonNextPage.setObserver(new Command() { private static final long serialVersionUID = -3174360416099554104L; diff --git a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java index 43810b3e3e9..4bd3166cbe9 100644 --- a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java +++ b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java @@ -78,7 +78,6 @@ public enum MageTray { tray.add(trayIcon); } catch (AWTException e) { log.error("TrayIcon could not be added: ", e); - return; } } catch (Exception e) { diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java index 16202fa4ff3..412e11eeafb 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorCMC.java @@ -2,6 +2,7 @@ package mage.client.deck.generator; import java.util.ArrayList; +import java.util.List; public enum DeckGeneratorCMC { @@ -51,11 +52,11 @@ public enum DeckGeneratorCMC { this.poolCMCs40 = CMCs40; } - public ArrayList get40CardPoolCMC() { + public List get40CardPoolCMC() { return this.poolCMCs40; } - public ArrayList get60CardPoolCMC() { + public List get60CardPoolCMC() { return this.poolCMCs60; } diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java b/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java index 21036d93c7b..b01bef149bf 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/RatioAdjustingSliderPanel.java @@ -143,7 +143,7 @@ public class RatioAdjustingSliderPanel extends JPanel { private static JLabel createChangingPercentageLabel(final JSlider slider) { - final JLabel label = new JLabel(" " + String.valueOf(slider.getValue()) + '%'); + final JLabel label = new JLabel(" " + slider.getValue() + '%'); slider.addChangeListener(e -> { String value = String.valueOf(slider.getValue()); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index 145126d2036..1385d616860 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -357,9 +357,7 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene for (int itemIndex : choiseValue) { java.util.List listReceived = ConstructedFormats.getSetsByFormat(x.getElementAt(itemIndex).toString()); - listReceived.stream().filter((item) -> (setCodes.contains(item) == false)).forEachOrdered((item) -> { - setCodes.add(item); - }); + listReceived.stream().filter(item -> !setCodes.contains(item)).forEachOrdered(setCodes::add); } criteria.setCodes(setCodes.toArray(new String[0])); } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java index a0b9c92f5f1..d087803205f 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckArea.java @@ -55,7 +55,7 @@ public class DeckArea extends javax.swing.JPanel { public int dividerLocationLimited; public int dividerLocationNormal; - private final static Pattern parser = Pattern.compile("([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)"); + private static final Pattern parser = Pattern.compile("([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)"); public static Settings parse(String s) { Matcher m = parser.matcher(s); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java index 29ef276b9a7..4bb6aefe8ab 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -1119,12 +1119,12 @@ class ImportFilter extends FileFilter { ext = s.substring(i + 1).toLowerCase(Locale.ENGLISH); } if (ext != null) { - if (ext.toLowerCase(Locale.ENGLISH).equals("dec") - || ext.toLowerCase(Locale.ENGLISH).equals("mwdeck") - || ext.toLowerCase(Locale.ENGLISH).equals("txt") - || ext.toLowerCase(Locale.ENGLISH).equals("dek") - || ext.toLowerCase(Locale.ENGLISH).equals("cod") - || ext.toLowerCase(Locale.ENGLISH).equals("o8d")) { + if (ext.equalsIgnoreCase("dec") + || ext.equalsIgnoreCase("mwdeck") + || ext.equalsIgnoreCase("txt") + || ext.equalsIgnoreCase("dek") + || ext.equalsIgnoreCase("cod") + || ext.equalsIgnoreCase("o8d")) { return true; } } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingBase.java b/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingBase.java index 59eafa90046..9df3a75a17d 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingBase.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingBase.java @@ -10,7 +10,7 @@ import mage.client.dialog.PreferencesDialog; public class SortSettingBase extends SortSetting { - private final static SortSettingBase instance = new SortSettingBase(); + private static final SortSettingBase instance = new SortSettingBase(); public static SortSettingBase getInstance() { return instance; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDeck.java b/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDeck.java index 17b5956cc06..f520d106f47 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDeck.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDeck.java @@ -10,7 +10,7 @@ import mage.client.dialog.PreferencesDialog; public class SortSettingDeck extends SortSetting { - private final static SortSettingDeck instance = new SortSettingDeck(); + private static final SortSettingDeck instance = new SortSettingDeck(); public static SortSettingDeck getInstance() { return instance; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDraft.java b/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDraft.java index 3545eaa77ce..26b4d3cc480 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDraft.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/SortSettingDraft.java @@ -10,7 +10,7 @@ import mage.client.dialog.PreferencesDialog; */ public class SortSettingDraft extends SortSetting { - private final static SortSettingDraft instance = new SortSettingDraft(); + private static final SortSettingDraft instance = new SortSettingDraft(); public static SortSettingDraft getInstance() { return instance; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java index e227d12d090..6ae066c8164 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java @@ -265,7 +265,7 @@ public class MageBook extends JComponent { public int showTokens() { jLayeredPane.removeAll(); List tokens = getTokens(currentPage, currentSet); - if (tokens != null && tokens.size() > 0) { + if (tokens != null && !tokens.isEmpty()) { int size = tokens.size(); Rectangle rectangle = new Rectangle(); rectangle.translate(OFFSET_X, OFFSET_Y); @@ -295,7 +295,7 @@ public class MageBook extends JComponent { public int showEmblems(int numTokens) { List emblems = getEmblems(currentPage, currentSet, numTokens); int numEmblems = 0; - if (emblems != null && emblems.size() > 0) { + if (emblems != null && !emblems.isEmpty()) { int size = emblems.size(); numEmblems = size; Rectangle rectangle = new Rectangle(); diff --git a/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java b/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java index da1b709bcfe..ada52f2916c 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/RandomPacksSelectorDialog.java @@ -25,7 +25,7 @@ public class RandomPacksSelectorDialog extends javax.swing.JDialog { private boolean isRandomDraft; private boolean isRichManDraft; private String title = ""; - public final static String randomDraftDescription = ("The selected packs will be randomly distributed to players. Each player may open different packs. Duplicates will be avoided."); + public static final String randomDraftDescription = ("The selected packs will be randomly distributed to players. Each player may open different packs. Duplicates will be avoided."); public RandomPacksSelectorDialog(boolean isRandomDraft, boolean isRichManDraft) { initComponents(); diff --git a/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java b/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java index 6ea1424acc4..3f187e19f40 100644 --- a/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java +++ b/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java @@ -23,9 +23,9 @@ import org.mage.card.arcane.CardRenderer; public final class GUISizeHelper { // relate the native image card size to a value of the size scale - final static int CARD_IMAGE_WIDTH = 312; - final static int CARD_IMAGE_HEIGHT = 445; - final static int CARD_IMAG_VALUE = 42; + static final int CARD_IMAGE_WIDTH = 312; + static final int CARD_IMAGE_HEIGHT = 445; + static final int CARD_IMAG_VALUE = 42; public static String basicSymbolSize = "small"; diff --git a/Mage.Client/src/main/java/mage/client/util/ImageCaches.java b/Mage.Client/src/main/java/mage/client/util/ImageCaches.java index cf226804950..2f5fe743456 100644 --- a/Mage.Client/src/main/java/mage/client/util/ImageCaches.java +++ b/Mage.Client/src/main/java/mage/client/util/ImageCaches.java @@ -10,7 +10,7 @@ import java.util.Map; */ public final class ImageCaches { - private final static ArrayList IMAGE_CACHES; + private static final ArrayList IMAGE_CACHES; static { IMAGE_CACHES = new ArrayList<>(); diff --git a/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java b/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java index b8abf2e5537..77ad5b8917c 100644 --- a/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java +++ b/Mage.Client/src/main/java/mage/client/util/TransformedImageCache.java @@ -22,7 +22,7 @@ import java.util.Map; */ public final class TransformedImageCache { - private final static class Key { + private static final class Key { final int width; final int height; diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java index d7812ba2aaa..0ffdaddc920 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java @@ -78,7 +78,7 @@ public class CardPanelComponentImpl extends CardPanel { private boolean displayTitleAnyway; private boolean displayFullImagePath; - private final static Map IMAGE_CACHE; + private static final Map IMAGE_CACHE; static class Key { diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java index 10182f66545..b3e3a495146 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java @@ -215,7 +215,7 @@ public class CardPanelRenderImpl extends CardPanel { } // Map of generated images - private final static Map IMAGE_CACHE = new MapMaker().softValues().makeMap(); + private static final Map IMAGE_CACHE = new MapMaker().softValues().makeMap(); // The art image for the card, loaded in from the disk private BufferedImage artImage; diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java b/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java index bc7ac1617d0..9062ffe6d8d 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java @@ -28,9 +28,9 @@ public class GlowText extends JLabel { private Color glowColor; private boolean wrap; private int lineCount = 0; - private final static Map IMAGE_CACHE; + private static final Map IMAGE_CACHE; - private final static class Key { + private static final class Key { final int width; final int height; diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java index 4aea652c0b9..baab2a7858d 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java @@ -63,7 +63,7 @@ import static org.mage.card.arcane.ManaSymbols.getSizedManaSymbol; */ public class ModernCardRenderer extends CardRenderer { - private final static Logger LOGGER = Logger.getLogger(ModernCardRenderer.class); + private static final Logger LOGGER = Logger.getLogger(ModernCardRenderer.class); /////////////////////////////////////////////////////////////////////////// // Textures for modern frame cards diff --git a/Mage.Common/src/main/java/mage/remote/SessionImpl.java b/Mage.Common/src/main/java/mage/remote/SessionImpl.java index 38439c01a5b..2dd201d284c 100644 --- a/Mage.Common/src/main/java/mage/remote/SessionImpl.java +++ b/Mage.Common/src/main/java/mage/remote/SessionImpl.java @@ -54,7 +54,7 @@ public class SessionImpl implements Session { private ServerState serverState; private SessionState sessionState = SessionState.DISCONNECTED; private Connection connection; - private final static int PING_CYCLES = 10; + private static final int PING_CYCLES = 10; private final LinkedList pingTime = new LinkedList<>(); private String pingInfo = ""; private static boolean debugMode = false; diff --git a/Mage.Common/src/main/java/mage/utils/MageVersion.java b/Mage.Common/src/main/java/mage/utils/MageVersion.java index fee5ed1286d..f65978c3331 100644 --- a/Mage.Common/src/main/java/mage/utils/MageVersion.java +++ b/Mage.Common/src/main/java/mage/utils/MageVersion.java @@ -12,13 +12,13 @@ public class MageVersion implements Serializable, Comparable { /** * */ - public final static int MAGE_VERSION_MAJOR = 1; - public final static int MAGE_VERSION_MINOR = 4; - public final static int MAGE_VERSION_PATCH = 33; - public final static String MAGE_EDITION_INFO = ""; // set "-beta" for 1.4.32-betaV0 - public final static String MAGE_VERSION_MINOR_PATCH = "V3"; // default + public static final int MAGE_VERSION_MAJOR = 1; + public static final int MAGE_VERSION_MINOR = 4; + public static final int MAGE_VERSION_PATCH = 33; + public static final String MAGE_EDITION_INFO = ""; // set "-beta" for 1.4.32-betaV0 + public static final String MAGE_VERSION_MINOR_PATCH = "V3"; // default // strict mode - private final static boolean MAGE_VERSION_MINOR_PATCH_MUST_BE_SAME = true; // set true on uncompatible github changes, set false after new major release (after MAGE_VERSION_PATCH changes) + private static final boolean MAGE_VERSION_MINOR_PATCH_MUST_BE_SAME = true; // set true on uncompatible github changes, set false after new major release (after MAGE_VERSION_PATCH changes) private final int major; private final int minor; diff --git a/Mage.Server/src/main/java/mage/server/Session.java b/Mage.Server/src/main/java/mage/server/Session.java index 39475db9237..be7d0357507 100644 --- a/Mage.Server/src/main/java/mage/server/Session.java +++ b/Mage.Server/src/main/java/mage/server/Session.java @@ -30,8 +30,8 @@ import org.jboss.remoting.callback.InvokerCallbackHandler; public class Session { private static final Logger logger = Logger.getLogger(Session.class); - private final static Pattern alphabetsPattern = Pattern.compile("[a-zA-Z]"); - private final static Pattern digitsPattern = Pattern.compile("[0-9]"); + private static final Pattern alphabetsPattern = Pattern.compile("[a-zA-Z]"); + private static final Pattern digitsPattern = Pattern.compile("[0-9]"); private final String sessionId; private UUID userId; diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java index 1ab6320e97d..d34848fdb10 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java @@ -24,7 +24,7 @@ import org.apache.log4j.Logger; */ public class DraftSession { - protected final static Logger logger = Logger.getLogger(DraftSession.class); + protected static final Logger logger = Logger.getLogger(DraftSession.class); protected final UUID userId; protected final UUID playerId; diff --git a/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java b/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java index daa075be50c..086a1cc04d1 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java +++ b/Mage.Server/src/main/java/mage/server/game/GameSessionWatcher.java @@ -25,7 +25,7 @@ import java.util.UUID; */ public class GameSessionWatcher { - protected final static Logger logger = Logger.getLogger(GameSessionWatcher.class); + protected static final Logger logger = Logger.getLogger(GameSessionWatcher.class); protected final UUID userId; protected final Game game; diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java index c93b8a056fd..33171659910 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java @@ -21,7 +21,7 @@ import org.apache.log4j.Logger; */ public class TournamentSession { - protected final static Logger logger = Logger.getLogger(TournamentSession.class); + protected static final Logger logger = Logger.getLogger(TournamentSession.class); protected final UUID userId; protected final UUID playerId; diff --git a/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java b/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java index 1e1341a51e9..7c23ced8ebe 100644 --- a/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java +++ b/Mage.Sets/src/mage/cards/a/AdaptiveAutomaton.java @@ -20,7 +20,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class AdaptiveAutomaton extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control of the chosen type"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control of the chosen type"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/a/AgentOfShauku.java b/Mage.Sets/src/mage/cards/a/AgentOfShauku.java index 974b9bda93f..21093caee9f 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfShauku.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfShauku.java @@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class AgentOfShauku extends CardImpl { - final static FilterControlledPermanent filter = new FilterControlledLandPermanent("a land"); + static final FilterControlledPermanent filter = new FilterControlledLandPermanent("a land"); public AgentOfShauku(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{B}"); diff --git a/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java b/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java index 3f6e056f885..b9d6032bfa6 100644 --- a/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java +++ b/Mage.Sets/src/mage/cards/a/AltacBloodseeker.java @@ -25,7 +25,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class AltacBloodseeker extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/a/AmrouSeekers.java b/Mage.Sets/src/mage/cards/a/AmrouSeekers.java index 006a78032c2..e9f0358e37b 100644 --- a/Mage.Sets/src/mage/cards/a/AmrouSeekers.java +++ b/Mage.Sets/src/mage/cards/a/AmrouSeekers.java @@ -22,7 +22,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public final class AmrouSeekers extends CardImpl { - private final static FilterCreaturePermanent notArtificatOrWhite = new FilterCreaturePermanent("except by artifact creatures and/or white creatures"); + private static final FilterCreaturePermanent notArtificatOrWhite = new FilterCreaturePermanent("except by artifact creatures and/or white creatures"); static { notArtificatOrWhite.add(Predicates.not( diff --git a/Mage.Sets/src/mage/cards/a/AngelOfSanctions.java b/Mage.Sets/src/mage/cards/a/AngelOfSanctions.java index 2d61c57d491..c6ebd9d003d 100644 --- a/Mage.Sets/src/mage/cards/a/AngelOfSanctions.java +++ b/Mage.Sets/src/mage/cards/a/AngelOfSanctions.java @@ -26,7 +26,7 @@ import mage.target.TargetPermanent; */ public final class AngelOfSanctions extends CardImpl { - private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/a/AngelsFeather.java b/Mage.Sets/src/mage/cards/a/AngelsFeather.java index 351a64d2bb4..193eeeefb0c 100644 --- a/Mage.Sets/src/mage/cards/a/AngelsFeather.java +++ b/Mage.Sets/src/mage/cards/a/AngelsFeather.java @@ -17,7 +17,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public final class AngelsFeather extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a white spell"); + private static final FilterSpell filter = new FilterSpell("a white spell"); static { filter.add(new ColorPredicate(ObjectColor.WHITE)); diff --git a/Mage.Sets/src/mage/cards/a/AngrathsFury.java b/Mage.Sets/src/mage/cards/a/AngrathsFury.java index 40cfd164590..dcf0f829f46 100644 --- a/Mage.Sets/src/mage/cards/a/AngrathsFury.java +++ b/Mage.Sets/src/mage/cards/a/AngrathsFury.java @@ -20,7 +20,7 @@ import mage.target.targetpointer.SecondTargetPointer; */ public final class AngrathsFury extends CardImpl { - private final static FilterCard filter = new FilterCard("Angrath, Minotaur Pirate"); + private static final FilterCard filter = new FilterCard("Angrath, Minotaur Pirate"); static { filter.add(new NamePredicate(filter.getMessage())); diff --git a/Mage.Sets/src/mage/cards/a/AnimateDead.java b/Mage.Sets/src/mage/cards/a/AnimateDead.java index c74a187ef30..0f833cc16e8 100644 --- a/Mage.Sets/src/mage/cards/a/AnimateDead.java +++ b/Mage.Sets/src/mage/cards/a/AnimateDead.java @@ -189,7 +189,7 @@ class AnimateDeadAttachEffect extends OneShotEffect { class AnimateDeadChangeAbilityEffect extends ContinuousEffectImpl implements SourceEffect { - private final static Ability newAbility = new EnchantAbility("creature put onto the battlefield with Animate Dead"); + private static final Ability newAbility = new EnchantAbility("creature put onto the battlefield with Animate Dead"); static { newAbility.setRuleAtTheTop(true); diff --git a/Mage.Sets/src/mage/cards/a/AquitectsWill.java b/Mage.Sets/src/mage/cards/a/AquitectsWill.java index 29ee4554919..b9b1d00d7ff 100644 --- a/Mage.Sets/src/mage/cards/a/AquitectsWill.java +++ b/Mage.Sets/src/mage/cards/a/AquitectsWill.java @@ -25,7 +25,7 @@ import java.util.UUID; */ public final class AquitectsWill extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("Merfolk"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("Merfolk"); static { filter.add(new SubtypePredicate(SubType.MERFOLK)); diff --git a/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java b/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java index 466dcdc9e2c..60f5990d5a3 100644 --- a/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java +++ b/Mage.Sets/src/mage/cards/a/ArenaOfTheAncients.java @@ -23,7 +23,7 @@ import mage.filter.predicate.mageobject.SupertypePredicate; */ public final class ArenaOfTheAncients extends CardImpl { - private final static FilterCreaturePermanent legendaryFilter = new FilterCreaturePermanent("legendary creatures"); + private static final FilterCreaturePermanent legendaryFilter = new FilterCreaturePermanent("legendary creatures"); static { legendaryFilter.add(new SupertypePredicate(SuperType.LEGENDARY)); } diff --git a/Mage.Sets/src/mage/cards/a/AvoidFate.java b/Mage.Sets/src/mage/cards/a/AvoidFate.java index c5d9a4834a1..2e8bd468318 100644 --- a/Mage.Sets/src/mage/cards/a/AvoidFate.java +++ b/Mage.Sets/src/mage/cards/a/AvoidFate.java @@ -22,7 +22,7 @@ import java.util.UUID; */ public final class AvoidFate extends CardImpl { - private final static FilterSpell filter = new FilterSpell("instant or Aura spell that targets a permanent you control"); + private static final FilterSpell filter = new FilterSpell("instant or Aura spell that targets a permanent you control"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.INSTANT), new SubtypePredicate(SubType.AURA))); diff --git a/Mage.Sets/src/mage/cards/a/AyeshaTanaka.java b/Mage.Sets/src/mage/cards/a/AyeshaTanaka.java index cf8165cc371..a0aa2952108 100644 --- a/Mage.Sets/src/mage/cards/a/AyeshaTanaka.java +++ b/Mage.Sets/src/mage/cards/a/AyeshaTanaka.java @@ -26,7 +26,7 @@ import mage.target.common.TargetActivatedAbility; */ public final class AyeshaTanaka extends CardImpl { - private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source"); + private static final FilterStackObject filter = new FilterStackObject("activated ability from an artifact source"); static { filter.add(new ArtifactSourcePredicate()); diff --git a/Mage.Sets/src/mage/cards/b/BanisherPriest.java b/Mage.Sets/src/mage/cards/b/BanisherPriest.java index 8767e9754db..83b8c0fa0f3 100644 --- a/Mage.Sets/src/mage/cards/b/BanisherPriest.java +++ b/Mage.Sets/src/mage/cards/b/BanisherPriest.java @@ -28,7 +28,7 @@ import mage.util.CardUtil; */ public final class BanisherPriest extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/b/BanishingLight.java b/Mage.Sets/src/mage/cards/b/BanishingLight.java index 56a3eed0ce7..5383a01ccc0 100644 --- a/Mage.Sets/src/mage/cards/b/BanishingLight.java +++ b/Mage.Sets/src/mage/cards/b/BanishingLight.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class BanishingLight extends CardImpl { - private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java b/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java index 4ea8d134617..7cd9d78dcb6 100644 --- a/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java +++ b/Mage.Sets/src/mage/cards/b/BaruFistOfKrosa.java @@ -70,7 +70,7 @@ public final class BaruFistOfKrosa extends CardImpl { class BaruFistOfKrosaEffect extends OneShotEffect { - final static FilterControlledPermanent filter = new FilterControlledLandPermanent("lands you control"); + static final FilterControlledPermanent filter = new FilterControlledLandPermanent("lands you control"); BaruFistOfKrosaEffect() { super(Outcome.PutCreatureInPlay); diff --git a/Mage.Sets/src/mage/cards/b/BastionProtector.java b/Mage.Sets/src/mage/cards/b/BastionProtector.java index ba1fdaac309..fa5054b1d93 100644 --- a/Mage.Sets/src/mage/cards/b/BastionProtector.java +++ b/Mage.Sets/src/mage/cards/b/BastionProtector.java @@ -24,7 +24,7 @@ import mage.filter.predicate.permanent.CommanderPredicate; */ public final class BastionProtector extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Commander creatures"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Commander creatures"); static { filter.add(CommanderPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/b/BishopOfBinding.java b/Mage.Sets/src/mage/cards/b/BishopOfBinding.java index ac53b0111a0..9b1fccfe486 100644 --- a/Mage.Sets/src/mage/cards/b/BishopOfBinding.java +++ b/Mage.Sets/src/mage/cards/b/BishopOfBinding.java @@ -35,7 +35,7 @@ import mage.util.CardUtil; */ public final class BishopOfBinding extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/b/BladewingsThrall.java b/Mage.Sets/src/mage/cards/b/BladewingsThrall.java index f9de91df98b..bac7f52f713 100644 --- a/Mage.Sets/src/mage/cards/b/BladewingsThrall.java +++ b/Mage.Sets/src/mage/cards/b/BladewingsThrall.java @@ -25,7 +25,7 @@ import mage.filter.common.FilterCreaturePermanent; */ public final class BladewingsThrall extends CardImpl { - final static private String RULE = "{this} has flying as long as you control a Dragon"; + static final private String RULE = "{this} has flying as long as you control a Dragon"; public BladewingsThrall(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}{B}"); diff --git a/Mage.Sets/src/mage/cards/b/BlightHerder.java b/Mage.Sets/src/mage/cards/b/BlightHerder.java index 12c4977360d..598dc52a20e 100644 --- a/Mage.Sets/src/mage/cards/b/BlightHerder.java +++ b/Mage.Sets/src/mage/cards/b/BlightHerder.java @@ -48,7 +48,7 @@ public final class BlightHerder extends CardImpl { class BlightHerderEffect extends OneShotEffect { - private final static FilterCard filter = new FilterCard("cards your opponents own from exile"); + private static final FilterCard filter = new FilterCard("cards your opponents own from exile"); static { filter.add(new OwnerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java b/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java index b80b2c8cd78..71adc8a30aa 100644 --- a/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java +++ b/Mage.Sets/src/mage/cards/b/BloodCursedKnight.java @@ -24,8 +24,8 @@ import mage.filter.common.FilterControlledEnchantmentPermanent; */ public final class BloodCursedKnight extends CardImpl { - final static private String rule1 = "As long as you control an enchantment, {this} gets +1/+1"; - final static private String rule2 = "and has lifelink"; + static final private String rule1 = "As long as you control an enchantment, {this} gets +1/+1"; + static final private String rule2 = "and has lifelink"; public BloodCursedKnight(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{B}"); diff --git a/Mage.Sets/src/mage/cards/b/Bloodbriar.java b/Mage.Sets/src/mage/cards/b/Bloodbriar.java index 644927bfcbf..6db0ffa8988 100644 --- a/Mage.Sets/src/mage/cards/b/Bloodbriar.java +++ b/Mage.Sets/src/mage/cards/b/Bloodbriar.java @@ -21,7 +21,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class Bloodbriar extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("another permanent"); + private static final FilterPermanent filter = new FilterPermanent("another permanent"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/b/BloodswornSteward.java b/Mage.Sets/src/mage/cards/b/BloodswornSteward.java index 21ed7ccdc95..10dcbe7f9fc 100644 --- a/Mage.Sets/src/mage/cards/b/BloodswornSteward.java +++ b/Mage.Sets/src/mage/cards/b/BloodswornSteward.java @@ -25,7 +25,7 @@ import mage.filter.predicate.permanent.CommanderPredicate; */ public final class BloodswornSteward extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Commander creatures"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Commander creatures"); static { filter.add(CommanderPredicate.instance); } diff --git a/Mage.Sets/src/mage/cards/b/BogGlider.java b/Mage.Sets/src/mage/cards/b/BogGlider.java index ed773d4f405..d00ee5c13b1 100644 --- a/Mage.Sets/src/mage/cards/b/BogGlider.java +++ b/Mage.Sets/src/mage/cards/b/BogGlider.java @@ -29,7 +29,7 @@ import mage.target.common.TargetControlledPermanent; */ public final class BogGlider extends CardImpl { - final static FilterControlledPermanent landFilter = new FilterControlledLandPermanent("a land"); + static final FilterControlledPermanent landFilter = new FilterControlledLandPermanent("a land"); private static final FilterPermanentCard filter = new FilterPermanentCard("Mercenary permanent card with converted mana cost 2 or less"); static { diff --git a/Mage.Sets/src/mage/cards/b/BoilingEarth.java b/Mage.Sets/src/mage/cards/b/BoilingEarth.java index a6d410a08f7..bb72e70568b 100644 --- a/Mage.Sets/src/mage/cards/b/BoilingEarth.java +++ b/Mage.Sets/src/mage/cards/b/BoilingEarth.java @@ -17,7 +17,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class BoilingEarth extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature your opponents control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature your opponents control"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java b/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java index e3350aa8774..6edd91e6fe0 100644 --- a/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java +++ b/Mage.Sets/src/mage/cards/b/BoundByMoonsilver.java @@ -26,7 +26,7 @@ import java.util.UUID; */ public final class BoundByMoonsilver extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("another permanent"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("another permanent"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/b/BrandedBrawlers.java b/Mage.Sets/src/mage/cards/b/BrandedBrawlers.java index 469bfcc8850..af4918a29d5 100644 --- a/Mage.Sets/src/mage/cards/b/BrandedBrawlers.java +++ b/Mage.Sets/src/mage/cards/b/BrandedBrawlers.java @@ -31,7 +31,7 @@ public final class BrandedBrawlers extends CardImpl { filter.add(Predicates.not(TappedPredicate.instance)); } - final static private String rule = "{this} can't block if you control an untapped land"; + static final private String rule = "{this} can't block if you control an untapped land"; public BrandedBrawlers(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); diff --git a/Mage.Sets/src/mage/cards/b/BrownOuphe.java b/Mage.Sets/src/mage/cards/b/BrownOuphe.java index b7ba3b157a6..d41d846a2d9 100644 --- a/Mage.Sets/src/mage/cards/b/BrownOuphe.java +++ b/Mage.Sets/src/mage/cards/b/BrownOuphe.java @@ -24,7 +24,7 @@ import mage.target.common.TargetActivatedAbility; */ public final class BrownOuphe extends CardImpl { - private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source"); + private static final FilterStackObject filter = new FilterStackObject("activated ability from an artifact source"); static { filter.add(new ArtifactSourcePredicate()); diff --git a/Mage.Sets/src/mage/cards/b/BudokaGardener.java b/Mage.Sets/src/mage/cards/b/BudokaGardener.java index 6bf5ead6b27..309f3980462 100644 --- a/Mage.Sets/src/mage/cards/b/BudokaGardener.java +++ b/Mage.Sets/src/mage/cards/b/BudokaGardener.java @@ -56,7 +56,7 @@ public final class BudokaGardener extends CardImpl { class BudokaGardenerEffect extends OneShotEffect { - final static FilterControlledPermanent filterLands = new FilterControlledLandPermanent("lands you control"); + static final FilterControlledPermanent filterLands = new FilterControlledLandPermanent("lands you control"); BudokaGardenerEffect() { super(Outcome.PutLandInPlay); diff --git a/Mage.Sets/src/mage/cards/b/BurningEarth.java b/Mage.Sets/src/mage/cards/b/BurningEarth.java index 885b5517203..901829dc536 100644 --- a/Mage.Sets/src/mage/cards/b/BurningEarth.java +++ b/Mage.Sets/src/mage/cards/b/BurningEarth.java @@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.SupertypePredicate; */ public final class BurningEarth extends CardImpl { - private final static FilterLandPermanent filter = new FilterLandPermanent("a player taps a nonbasic land"); + private static final FilterLandPermanent filter = new FilterLandPermanent("a player taps a nonbasic land"); static { filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC))); diff --git a/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java b/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java index ea9e9137709..66dedbd9d56 100644 --- a/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java +++ b/Mage.Sets/src/mage/cards/c/CapturedByTheConsulate.java @@ -33,7 +33,7 @@ import mage.target.targetpointer.FixedTarget; */ public final class CapturedByTheConsulate extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.NOT_YOU)); diff --git a/Mage.Sets/src/mage/cards/c/CastOut.java b/Mage.Sets/src/mage/cards/c/CastOut.java index ea4dd6d9530..80465f8c2b4 100644 --- a/Mage.Sets/src/mage/cards/c/CastOut.java +++ b/Mage.Sets/src/mage/cards/c/CastOut.java @@ -24,7 +24,7 @@ import mage.target.TargetPermanent; */ public final class CastOut extends CardImpl { - private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/c/CatacombSifter.java b/Mage.Sets/src/mage/cards/c/CatacombSifter.java index 39d60404112..1ea063803cf 100644 --- a/Mage.Sets/src/mage/cards/c/CatacombSifter.java +++ b/Mage.Sets/src/mage/cards/c/CatacombSifter.java @@ -24,7 +24,7 @@ import mage.game.permanent.token.EldraziScionToken; */ public final class CatacombSifter extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); static { filter.add(AnotherPredicate.instance); filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/c/ChampionOfDusk.java b/Mage.Sets/src/mage/cards/c/ChampionOfDusk.java index e5c218c007d..dedfdaa9def 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionOfDusk.java +++ b/Mage.Sets/src/mage/cards/c/ChampionOfDusk.java @@ -23,7 +23,7 @@ import java.util.UUID; */ public final class ChampionOfDusk extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("Vampires you control"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("Vampires you control"); static { filter.add(new SubtypePredicate(SubType.VAMPIRE)); diff --git a/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java b/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java index 00e0561590b..c7c320feedf 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java +++ b/Mage.Sets/src/mage/cards/c/ChampionOfLambholt.java @@ -23,7 +23,7 @@ import java.util.UUID; */ public final class ChampionOfLambholt extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/c/ChandrasDefeat.java b/Mage.Sets/src/mage/cards/c/ChandrasDefeat.java index 23f2a0ca920..0da144b19c7 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasDefeat.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasDefeat.java @@ -26,7 +26,7 @@ import mage.target.TargetPermanent; */ public final class ChandrasDefeat extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("creature or planeswalker"); + private static final FilterPermanent filter = new FilterPermanent("creature or planeswalker"); static { filter.add(new ColorPredicate(ObjectColor.RED)); diff --git a/Mage.Sets/src/mage/cards/c/ChandrasOutburst.java b/Mage.Sets/src/mage/cards/c/ChandrasOutburst.java index 6d682588f90..5d70eb1fb42 100644 --- a/Mage.Sets/src/mage/cards/c/ChandrasOutburst.java +++ b/Mage.Sets/src/mage/cards/c/ChandrasOutburst.java @@ -17,7 +17,7 @@ import mage.target.common.TargetPlayerOrPlaneswalker; */ public final class ChandrasOutburst extends CardImpl { - private final static FilterCard filter = new FilterCard("Chandra, Bold Pyromancer"); + private static final FilterCard filter = new FilterCard("Chandra, Bold Pyromancer"); static { filter.add(new NamePredicate("Chandra, Bold Pyromancer")); diff --git a/Mage.Sets/src/mage/cards/c/ChimericEgg.java b/Mage.Sets/src/mage/cards/c/ChimericEgg.java index 88816bba41f..55087136387 100644 --- a/Mage.Sets/src/mage/cards/c/ChimericEgg.java +++ b/Mage.Sets/src/mage/cards/c/ChimericEgg.java @@ -31,7 +31,7 @@ import mage.game.permanent.token.custom.CreatureToken; */ public final class ChimericEgg extends CardImpl { - private final static FilterSpell nonArtifactFilter = new FilterSpell("a nonartifact spell"); + private static final FilterSpell nonArtifactFilter = new FilterSpell("a nonartifact spell"); static { nonArtifactFilter.add(Predicates.not(new CardTypePredicate(CardType.ARTIFACT))); diff --git a/Mage.Sets/src/mage/cards/c/CitadelSiege.java b/Mage.Sets/src/mage/cards/c/CitadelSiege.java index 99948a47061..84764fb93db 100644 --- a/Mage.Sets/src/mage/cards/c/CitadelSiege.java +++ b/Mage.Sets/src/mage/cards/c/CitadelSiege.java @@ -28,9 +28,9 @@ import java.util.UUID; */ public final class CitadelSiege extends CardImpl { - private final static String ruleTrigger1 = "&bull Khans — At the beginning of combat on your turn, put two +1/+1 counters on target creature you control."; - private final static String ruleTrigger2 = "&bull Dragons — At the beginning of combat on each opponent's turn, tap target creature that player controls."; - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature controlled by the active player"); + private static final String ruleTrigger1 = "&bull Khans — At the beginning of combat on your turn, put two +1/+1 counters on target creature you control."; + private static final String ruleTrigger2 = "&bull Dragons — At the beginning of combat on each opponent's turn, tap target creature that player controls."; + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature controlled by the active player"); static { filter.add(CitadelSiegePredicate.instance); diff --git a/Mage.Sets/src/mage/cards/c/CloseQuarters.java b/Mage.Sets/src/mage/cards/c/CloseQuarters.java index 17cbd66ffd1..1d0fa5519cc 100644 --- a/Mage.Sets/src/mage/cards/c/CloseQuarters.java +++ b/Mage.Sets/src/mage/cards/c/CloseQuarters.java @@ -19,7 +19,7 @@ import mage.target.common.TargetAnyTarget; */ public final class CloseQuarters extends CardImpl { - final static private FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control"); + static final private FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/c/ConclaveTribunal.java b/Mage.Sets/src/mage/cards/c/ConclaveTribunal.java index d06e3d72f86..ca5fec47016 100644 --- a/Mage.Sets/src/mage/cards/c/ConclaveTribunal.java +++ b/Mage.Sets/src/mage/cards/c/ConclaveTribunal.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class ConclaveTribunal extends CardImpl { - private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/c/ConfiscationCoup.java b/Mage.Sets/src/mage/cards/c/ConfiscationCoup.java index ff2bc46367d..7d3d9591253 100644 --- a/Mage.Sets/src/mage/cards/c/ConfiscationCoup.java +++ b/Mage.Sets/src/mage/cards/c/ConfiscationCoup.java @@ -29,7 +29,7 @@ import mage.target.targetpointer.FixedTarget; */ public final class ConfiscationCoup extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("creature or artifact"); + private static final FilterPermanent filter = new FilterPermanent("creature or artifact"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.ARTIFACT))); diff --git a/Mage.Sets/src/mage/cards/c/Confound.java b/Mage.Sets/src/mage/cards/c/Confound.java index 6a04ca4571b..1a46edb59c5 100644 --- a/Mage.Sets/src/mage/cards/c/Confound.java +++ b/Mage.Sets/src/mage/cards/c/Confound.java @@ -18,7 +18,7 @@ import mage.target.TargetSpell; */ public final class Confound extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets a creature"); + private static final FilterSpell filter = new FilterSpell("spell that targets a creature"); static { filter.add(new TargetsPermanentPredicate(new FilterCreaturePermanent())); diff --git a/Mage.Sets/src/mage/cards/c/ConsulsShieldguard.java b/Mage.Sets/src/mage/cards/c/ConsulsShieldguard.java index 16798cb14c1..29fe70cdc5d 100644 --- a/Mage.Sets/src/mage/cards/c/ConsulsShieldguard.java +++ b/Mage.Sets/src/mage/cards/c/ConsulsShieldguard.java @@ -26,7 +26,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class ConsulsShieldguard extends CardImpl { - private final static FilterAttackingCreature filter = new FilterAttackingCreature(); + private static final FilterAttackingCreature filter = new FilterAttackingCreature(); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/c/CrimsonHonorGuard.java b/Mage.Sets/src/mage/cards/c/CrimsonHonorGuard.java index 147aeb97ba3..4d8f96c8abd 100644 --- a/Mage.Sets/src/mage/cards/c/CrimsonHonorGuard.java +++ b/Mage.Sets/src/mage/cards/c/CrimsonHonorGuard.java @@ -53,7 +53,7 @@ public final class CrimsonHonorGuard extends CardImpl { class CrimsonHonorGuardEffect extends OneShotEffect { - private final static FilterPermanent filter = new FilterPermanent("Commander"); + private static final FilterPermanent filter = new FilterPermanent("Commander"); static { filter.add(CommanderPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java b/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java index 0cfc1cde782..91088cacf8d 100644 --- a/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java +++ b/Mage.Sets/src/mage/cards/c/CrossroadsConsecrator.java @@ -24,7 +24,7 @@ import mage.target.common.TargetAttackingCreature; */ public final class CrossroadsConsecrator extends CardImpl { - private final static FilterAttackingCreature filter = new FilterAttackingCreature("attacking Human"); + private static final FilterAttackingCreature filter = new FilterAttackingCreature("attacking Human"); static { filter.add(new SubtypePredicate(SubType.HUMAN)); diff --git a/Mage.Sets/src/mage/cards/c/CruelRevival.java b/Mage.Sets/src/mage/cards/c/CruelRevival.java index 8b06c4f8365..47a862248d2 100644 --- a/Mage.Sets/src/mage/cards/c/CruelRevival.java +++ b/Mage.Sets/src/mage/cards/c/CruelRevival.java @@ -26,8 +26,8 @@ import java.util.UUID; */ public final class CruelRevival extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Zombie creature"); - private final static FilterCard filter2 = new FilterCard("Zombie card from your graveyard"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Zombie creature"); + private static final FilterCard filter2 = new FilterCard("Zombie card from your graveyard"); static { filter.add(new CardTypePredicate(CardType.CREATURE)); diff --git a/Mage.Sets/src/mage/cards/c/Cryptoplasm.java b/Mage.Sets/src/mage/cards/c/Cryptoplasm.java index 2fcf2c30d97..3b159867ea0 100644 --- a/Mage.Sets/src/mage/cards/c/Cryptoplasm.java +++ b/Mage.Sets/src/mage/cards/c/Cryptoplasm.java @@ -25,7 +25,7 @@ import mage.util.functions.ApplyToPermanent; */ public final class Cryptoplasm extends CardImpl { - final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/c/CultOfTheWaxingMoon.java b/Mage.Sets/src/mage/cards/c/CultOfTheWaxingMoon.java index eb94342220b..da9dab039af 100644 --- a/Mage.Sets/src/mage/cards/c/CultOfTheWaxingMoon.java +++ b/Mage.Sets/src/mage/cards/c/CultOfTheWaxingMoon.java @@ -47,7 +47,7 @@ public final class CultOfTheWaxingMoon extends CardImpl { class CultOfTheWaxingMoonAbility extends TriggeredAbilityImpl { - private final static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent(); static { filter.add(Predicates.not(new SubtypePredicate(SubType.HUMAN))); diff --git a/Mage.Sets/src/mage/cards/d/DampeningPulse.java b/Mage.Sets/src/mage/cards/d/DampeningPulse.java index 48d1ab9fa39..54998b8e2ce 100644 --- a/Mage.Sets/src/mage/cards/d/DampeningPulse.java +++ b/Mage.Sets/src/mage/cards/d/DampeningPulse.java @@ -19,7 +19,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class DampeningPulse extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures your opponents control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures your opponents control"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java index 40b8b5a6f38..01eccf78337 100644 --- a/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java +++ b/Mage.Sets/src/mage/cards/d/DanceOfTheDead.java @@ -204,7 +204,7 @@ class DanceOfTheDeadAttachEffect extends OneShotEffect { class DanceOfTheDeadChangeAbilityEffect extends ContinuousEffectImpl implements SourceEffect { - private final static Ability newAbility = new EnchantAbility("creature put onto the battlefield with Dance of the Dead"); + private static final Ability newAbility = new EnchantAbility("creature put onto the battlefield with Dance of the Dead"); static { newAbility.setRuleAtTheTop(true); diff --git a/Mage.Sets/src/mage/cards/d/DaringDemolition.java b/Mage.Sets/src/mage/cards/d/DaringDemolition.java index 176dedf496c..3bc03353c94 100644 --- a/Mage.Sets/src/mage/cards/d/DaringDemolition.java +++ b/Mage.Sets/src/mage/cards/d/DaringDemolition.java @@ -19,7 +19,7 @@ import mage.target.TargetPermanent; */ public final class DaringDemolition extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("creature or Vehicle"); + private static final FilterPermanent filter = new FilterPermanent("creature or Vehicle"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new SubtypePredicate(SubType.VEHICLE))); diff --git a/Mage.Sets/src/mage/cards/d/DarkSalvation.java b/Mage.Sets/src/mage/cards/d/DarkSalvation.java index 9c0b24555c4..ca82c4e59ef 100644 --- a/Mage.Sets/src/mage/cards/d/DarkSalvation.java +++ b/Mage.Sets/src/mage/cards/d/DarkSalvation.java @@ -58,7 +58,7 @@ public final class DarkSalvation extends CardImpl { class ZombiesControlledByTargetPlayerCount implements DynamicValue { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombies"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombies"); static { filter.add(new SubtypePredicate(SubType.ZOMBIE)); diff --git a/Mage.Sets/src/mage/cards/d/DarkslickShores.java b/Mage.Sets/src/mage/cards/d/DarkslickShores.java index 0dffdd6e4b2..82b941846af 100644 --- a/Mage.Sets/src/mage/cards/d/DarkslickShores.java +++ b/Mage.Sets/src/mage/cards/d/DarkslickShores.java @@ -23,7 +23,7 @@ import mage.filter.predicate.permanent.AnotherPredicate; */ public final class DarkslickShores extends CardImpl { - private final static FilterLandPermanent filter = new FilterLandPermanent(); + private static final FilterLandPermanent filter = new FilterLandPermanent(); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java b/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java index be7b60f0b46..2f82085d8cd 100644 --- a/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java +++ b/Mage.Sets/src/mage/cards/d/DauntlessDourbark.java @@ -29,8 +29,8 @@ import mage.filter.predicate.permanent.AnotherPredicate; */ public final class DauntlessDourbark extends CardImpl { - final static private FilterControlledPermanent filter = new FilterControlledPermanent("Forests you control plus the number of Treefolk you control"); - final static private FilterControlledPermanent filter2 = new FilterControlledPermanent(); + static final private FilterControlledPermanent filter = new FilterControlledPermanent("Forests you control plus the number of Treefolk you control"); + static final private FilterControlledPermanent filter2 = new FilterControlledPermanent(); static { filter.add(Predicates.or(new SubtypePredicate(SubType.FOREST), @@ -39,7 +39,7 @@ public final class DauntlessDourbark extends CardImpl { filter2.add(AnotherPredicate.instance); } - final static private String rule = "{this} has trample as long as you control another Treefolk"; + static final private String rule = "{this} has trample as long as you control another Treefolk"; public DauntlessDourbark(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}"); diff --git a/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java b/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java index a8c31839c7a..f6ef1914b3d 100644 --- a/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java +++ b/Mage.Sets/src/mage/cards/d/DeadeyeHarpooner.java @@ -24,7 +24,7 @@ import mage.watchers.common.RevoltWatcher; */ public final class DeadeyeHarpooner extends CardImpl { - private final static FilterOpponentsCreaturePermanent filter = new FilterOpponentsCreaturePermanent("tapped creature an opponent controls"); + private static final FilterOpponentsCreaturePermanent filter = new FilterOpponentsCreaturePermanent("tapped creature an opponent controls"); static { filter.add(TappedPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java b/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java index 393d20d1e6c..0cce899f7e8 100644 --- a/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java +++ b/Mage.Sets/src/mage/cards/d/DeathlessBehemoth.java @@ -23,7 +23,7 @@ import mage.target.common.TargetControlledPermanent; */ public final class DeathlessBehemoth extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("two Eldrazi Scions"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("two Eldrazi Scions"); static { filter.add(Predicates.and( diff --git a/Mage.Sets/src/mage/cards/d/DefiantSalvager.java b/Mage.Sets/src/mage/cards/d/DefiantSalvager.java index 8a6a3fc5924..7abc7ce3347 100644 --- a/Mage.Sets/src/mage/cards/d/DefiantSalvager.java +++ b/Mage.Sets/src/mage/cards/d/DefiantSalvager.java @@ -24,7 +24,7 @@ import mage.target.common.TargetControlledPermanent; */ public final class DefiantSalvager extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("an artifact or creature"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("an artifact or creature"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.ARTIFACT), new CardTypePredicate(CardType.CREATURE))); diff --git a/Mage.Sets/src/mage/cards/d/DemonsHorn.java b/Mage.Sets/src/mage/cards/d/DemonsHorn.java index bc8400022df..71e71e2d01b 100644 --- a/Mage.Sets/src/mage/cards/d/DemonsHorn.java +++ b/Mage.Sets/src/mage/cards/d/DemonsHorn.java @@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public final class DemonsHorn extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a black spell"); + private static final FilterSpell filter = new FilterSpell("a black spell"); static { filter.add(new ColorPredicate(ObjectColor.BLACK)); diff --git a/Mage.Sets/src/mage/cards/d/DespoticScepter.java b/Mage.Sets/src/mage/cards/d/DespoticScepter.java index b08f92a42a2..d4757705ebc 100644 --- a/Mage.Sets/src/mage/cards/d/DespoticScepter.java +++ b/Mage.Sets/src/mage/cards/d/DespoticScepter.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class DespoticScepter extends CardImpl { - private final static FilterPermanent FILTER = new FilterPermanent("permanent you own"); + private static final FilterPermanent FILTER = new FilterPermanent("permanent you own"); static { FILTER.add(new OwnerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java b/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java index f4d6055b6ad..a8bc994b4f6 100644 --- a/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java +++ b/Mage.Sets/src/mage/cards/d/DinOfTheFireherd.java @@ -48,8 +48,8 @@ public final class DinOfTheFireherd extends CardImpl { class DinOfTheFireherdEffect extends OneShotEffect { - private final static FilterControlledCreaturePermanent blackCreatureFilter = new FilterControlledCreaturePermanent("black creatures you control"); - private final static FilterControlledCreaturePermanent redCreatureFilter = new FilterControlledCreaturePermanent("red creatures you control"); + private static final FilterControlledCreaturePermanent blackCreatureFilter = new FilterControlledCreaturePermanent("black creatures you control"); + private static final FilterControlledCreaturePermanent redCreatureFilter = new FilterControlledCreaturePermanent("red creatures you control"); static { blackCreatureFilter.add(new ColorPredicate(ObjectColor.BLACK)); diff --git a/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java b/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java index 6e5555fdf8f..4132ba251b7 100644 --- a/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java +++ b/Mage.Sets/src/mage/cards/d/DiplomaticEscort.java @@ -25,7 +25,7 @@ import mage.target.TargetStackObject; */ public final class DiplomaticEscort extends CardImpl { - private final static FilterStackObject filter = new FilterStackObject("spell or ability that targets a creature"); + private static final FilterStackObject filter = new FilterStackObject("spell or ability that targets a creature"); static { filter.add(new TargetsPermanentPredicate(new FilterCreaturePermanent())); diff --git a/Mage.Sets/src/mage/cards/d/DireUndercurrents.java b/Mage.Sets/src/mage/cards/d/DireUndercurrents.java index 9c104360e81..ce28bb0433c 100644 --- a/Mage.Sets/src/mage/cards/d/DireUndercurrents.java +++ b/Mage.Sets/src/mage/cards/d/DireUndercurrents.java @@ -22,11 +22,11 @@ import mage.target.TargetPlayer; */ public final class DireUndercurrents extends CardImpl { - private final static String rule1 = "Whenever a blue creature enters the battlefield under your control, you may have target player draw a card."; - private final static String rule2 = "Whenever a black creature enters the battlefield under your control, you may have target player discard a card."; + private static final String rule1 = "Whenever a blue creature enters the battlefield under your control, you may have target player draw a card."; + private static final String rule2 = "Whenever a black creature enters the battlefield under your control, you may have target player discard a card."; - private final static FilterControlledPermanent filterBlue = new FilterControlledCreaturePermanent(); - private final static FilterControlledPermanent filterBlack = new FilterControlledCreaturePermanent(); + private static final FilterControlledPermanent filterBlue = new FilterControlledCreaturePermanent(); + private static final FilterControlledPermanent filterBlack = new FilterControlledCreaturePermanent(); static { filterBlue.add(new ColorPredicate(ObjectColor.BLUE)); diff --git a/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java b/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java index 13d14c9460d..5719cf8b5b3 100644 --- a/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java +++ b/Mage.Sets/src/mage/cards/d/DissensionInTheRanks.java @@ -17,7 +17,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class DissensionInTheRanks extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("blocking creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("blocking creature"); static { filter.add(BlockingPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java b/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java index bba34f74968..c613b4238da 100644 --- a/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java +++ b/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java @@ -52,7 +52,7 @@ public final class DjinnIlluminatus extends CardImpl { class DjinnIlluminatusGainReplicateEffect extends ContinuousEffectImpl { - private final static FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); + private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); private final Map replicateAbilities = new HashMap<>(); public DjinnIlluminatusGainReplicateEffect() { diff --git a/Mage.Sets/src/mage/cards/d/Domineer.java b/Mage.Sets/src/mage/cards/d/Domineer.java index f24c075f693..95afadeb8df 100644 --- a/Mage.Sets/src/mage/cards/d/Domineer.java +++ b/Mage.Sets/src/mage/cards/d/Domineer.java @@ -24,7 +24,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class Domineer extends CardImpl { - final static FilterCreaturePermanent filter = new FilterCreaturePermanent("artifact creature"); + static final FilterCreaturePermanent filter = new FilterCreaturePermanent("artifact creature"); static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); diff --git a/Mage.Sets/src/mage/cards/d/DoubtlessOne.java b/Mage.Sets/src/mage/cards/d/DoubtlessOne.java index 03a655b1481..b29eff1bd4d 100644 --- a/Mage.Sets/src/mage/cards/d/DoubtlessOne.java +++ b/Mage.Sets/src/mage/cards/d/DoubtlessOne.java @@ -22,7 +22,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; */ public final class DoubtlessOne extends CardImpl { - final static FilterPermanent filter = new FilterPermanent("Clerics on the battlefield"); + static final FilterPermanent filter = new FilterPermanent("Clerics on the battlefield"); static { filter.add(new SubtypePredicate(SubType.CLERIC)); diff --git a/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java b/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java index f90f8c05ee4..68af370d1a5 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordsPrerogative.java @@ -83,7 +83,7 @@ enum DragonlordsPrerogativeAdjuster implements CostAdjuster { class DragonlordsPrerogativeCondition implements Condition { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("Dragon"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("Dragon"); static { filter.add(new SubtypePredicate(SubType.DRAGON)); diff --git a/Mage.Sets/src/mage/cards/d/DragonsClaw.java b/Mage.Sets/src/mage/cards/d/DragonsClaw.java index eafaca5ef5e..647d66407c6 100644 --- a/Mage.Sets/src/mage/cards/d/DragonsClaw.java +++ b/Mage.Sets/src/mage/cards/d/DragonsClaw.java @@ -17,7 +17,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public final class DragonsClaw extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a red spell"); + private static final FilterSpell filter = new FilterSpell("a red spell"); static { filter.add(new ColorPredicate(ObjectColor.RED)); diff --git a/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java b/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java index 528687ae190..a4fd2922cc7 100644 --- a/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java +++ b/Mage.Sets/src/mage/cards/d/DragonsEyeSavants.java @@ -25,7 +25,7 @@ import mage.target.common.TargetOpponent; */ public final class DragonsEyeSavants extends CardImpl { - private final static FilterCard filter = new FilterCard("a blue card in your hand"); + private static final FilterCard filter = new FilterCard("a blue card in your hand"); static { filter.add(new ColorPredicate(ObjectColor.BLUE)); } diff --git a/Mage.Sets/src/mage/cards/d/DramaticReversal.java b/Mage.Sets/src/mage/cards/d/DramaticReversal.java index 4d705f42b7f..a8d990a82da 100644 --- a/Mage.Sets/src/mage/cards/d/DramaticReversal.java +++ b/Mage.Sets/src/mage/cards/d/DramaticReversal.java @@ -16,7 +16,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class DramaticReversal extends CardImpl { - private final static FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland permanents"); + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland permanents"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java b/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java index b4f6e3f9cf1..2ea06d32390 100644 --- a/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java +++ b/Mage.Sets/src/mage/cards/d/DuneBroodNephilim.java @@ -19,7 +19,7 @@ import mage.game.permanent.token.DuneBroodNephilimToken; */ public final class DuneBroodNephilim extends CardImpl { - final static FilterControlledPermanent filterLands = new FilterControlledLandPermanent(); + static final FilterControlledPermanent filterLands = new FilterControlledLandPermanent(); public DuneBroodNephilim(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{R}{G}{W}"); diff --git a/Mage.Sets/src/mage/cards/d/DungroveElder.java b/Mage.Sets/src/mage/cards/d/DungroveElder.java index f12ba5add7c..6a3d12ea275 100644 --- a/Mage.Sets/src/mage/cards/d/DungroveElder.java +++ b/Mage.Sets/src/mage/cards/d/DungroveElder.java @@ -23,7 +23,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; */ public final class DungroveElder extends CardImpl { - final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); + static final FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); static { filterLands.add(new SubtypePredicate(SubType.FOREST)); diff --git a/Mage.Sets/src/mage/cards/d/DustStalker.java b/Mage.Sets/src/mage/cards/d/DustStalker.java index 4a156722407..8f2c44d4dd8 100644 --- a/Mage.Sets/src/mage/cards/d/DustStalker.java +++ b/Mage.Sets/src/mage/cards/d/DustStalker.java @@ -25,7 +25,7 @@ import mage.filter.predicate.permanent.AnotherPredicate; */ public final class DustStalker extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("if you control no other colorless creatures"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("if you control no other colorless creatures"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/e/EarlOfSquirrel.java b/Mage.Sets/src/mage/cards/e/EarlOfSquirrel.java index 37c2081f546..d213ba19deb 100644 --- a/Mage.Sets/src/mage/cards/e/EarlOfSquirrel.java +++ b/Mage.Sets/src/mage/cards/e/EarlOfSquirrel.java @@ -28,7 +28,7 @@ import mage.util.SubTypeList; */ public final class EarlOfSquirrel extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Creature tokens you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creature tokens you control"); private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("Other squirrels you control"); diff --git a/Mage.Sets/src/mage/cards/e/EddytrailHawk.java b/Mage.Sets/src/mage/cards/e/EddytrailHawk.java index e7bf591e8c8..6428e555f0f 100644 --- a/Mage.Sets/src/mage/cards/e/EddytrailHawk.java +++ b/Mage.Sets/src/mage/cards/e/EddytrailHawk.java @@ -26,7 +26,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class EddytrailHawk extends CardImpl { - private final static FilterAttackingCreature filter = new FilterAttackingCreature(); + private static final FilterAttackingCreature filter = new FilterAttackingCreature(); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java b/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java index af8469673f0..b0f405a1cd9 100644 --- a/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java +++ b/Mage.Sets/src/mage/cards/e/ElectrostaticBolt.java @@ -43,7 +43,7 @@ public final class ElectrostaticBolt extends CardImpl { class ElectrostaticBoltDamageValue implements DynamicValue { - final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); diff --git a/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java b/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java index 0dee090c343..117f6d63810 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java +++ b/Mage.Sets/src/mage/cards/e/ElvishBranchbender.java @@ -58,7 +58,7 @@ public final class ElvishBranchbender extends CardImpl { class ElvishBranchbenderEffect extends OneShotEffect { - final static FilterControlledPermanent filter = new FilterControlledPermanent("Elves you control"); + static final FilterControlledPermanent filter = new FilterControlledPermanent("Elves you control"); static { filter.add(new SubtypePredicate(SubType.ELF)); } diff --git a/Mage.Sets/src/mage/cards/e/EnergyStorm.java b/Mage.Sets/src/mage/cards/e/EnergyStorm.java index e56b8fd6b0a..a3a8cc4593a 100644 --- a/Mage.Sets/src/mage/cards/e/EnergyStorm.java +++ b/Mage.Sets/src/mage/cards/e/EnergyStorm.java @@ -24,7 +24,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate; */ public final class EnergyStorm extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with flying"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with flying"); static { filter.add(new AbilityPredicate(FlyingAbility.class)); diff --git a/Mage.Sets/src/mage/cards/e/ErebossTitan.java b/Mage.Sets/src/mage/cards/e/ErebossTitan.java index c155d1cf61e..d15a436bb83 100644 --- a/Mage.Sets/src/mage/cards/e/ErebossTitan.java +++ b/Mage.Sets/src/mage/cards/e/ErebossTitan.java @@ -34,7 +34,7 @@ import mage.players.Player; */ public final class ErebossTitan extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java b/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java index de1af82213d..5c5ff2373d8 100644 --- a/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java +++ b/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java @@ -58,7 +58,7 @@ public final class EtaliPrimalStorm extends CardImpl { class EtaliPrimalStormEffect extends OneShotEffect { - private final static FilterCard filter = new FilterCard("nonland cards"); + private static final FilterCard filter = new FilterCard("nonland cards"); static { filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); diff --git a/Mage.Sets/src/mage/cards/e/ExtractorDemon.java b/Mage.Sets/src/mage/cards/e/ExtractorDemon.java index 0576b6b22e5..5ae17fa5acc 100644 --- a/Mage.Sets/src/mage/cards/e/ExtractorDemon.java +++ b/Mage.Sets/src/mage/cards/e/ExtractorDemon.java @@ -24,7 +24,7 @@ import mage.target.TargetPlayer; */ public final class ExtractorDemon extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/e/EzurisBrigade.java b/Mage.Sets/src/mage/cards/e/EzurisBrigade.java index 1602de0fe62..28bd5cf3748 100644 --- a/Mage.Sets/src/mage/cards/e/EzurisBrigade.java +++ b/Mage.Sets/src/mage/cards/e/EzurisBrigade.java @@ -24,7 +24,7 @@ import mage.constants.Zone; * @author Loki */ public final class EzurisBrigade extends CardImpl { - private static final String text = "Metalcraft — As long as you control three or more artifacts, Ezuri's Brigade gets +4/+4 and has trample"; + private static final String rule = "Metalcraft — As long as you control three or more artifacts, Ezuri's Brigade gets +4/+4 and has trample"; public EzurisBrigade (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}"); @@ -34,7 +34,7 @@ public final class EzurisBrigade extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); ContinuousEffect boostSource = new BoostSourceEffect(4, 4, Duration.WhileOnBattlefield); - ConditionalContinuousEffect effect = new ConditionalContinuousEffect(boostSource, MetalcraftCondition.instance, text); + ConditionalContinuousEffect effect = new ConditionalContinuousEffect(boostSource, MetalcraftCondition.instance, rule); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield), MetalcraftCondition.instance, "")); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java b/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java index ad31ca0c71f..03ab1b1fd99 100644 --- a/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java +++ b/Mage.Sets/src/mage/cards/f/FairgroundsWarden.java @@ -28,7 +28,7 @@ import mage.util.CardUtil; */ public final class FairgroundsWarden extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java b/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java index 75685ca33fc..558a0caccb8 100644 --- a/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java +++ b/Mage.Sets/src/mage/cards/f/ForerunnerOfSlaughter.java @@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class ForerunnerOfSlaughter extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("colorless creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("colorless creature"); static { filter.add(ColorlessPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/f/ForiysianTotem.java b/Mage.Sets/src/mage/cards/f/ForiysianTotem.java index ce7ea5dacc7..ee0c0033744 100644 --- a/Mage.Sets/src/mage/cards/f/ForiysianTotem.java +++ b/Mage.Sets/src/mage/cards/f/ForiysianTotem.java @@ -28,7 +28,7 @@ import mage.game.permanent.token.Token; */ public final class ForiysianTotem extends CardImpl { - private final static String ruleText = "As long as {this} is a creature, it can block an additional creature each combat."; + private static final String ruleText = "As long as {this} is a creature, it can block an additional creature each combat."; public ForiysianTotem(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); diff --git a/Mage.Sets/src/mage/cards/f/FoundryHornet.java b/Mage.Sets/src/mage/cards/f/FoundryHornet.java index dc9eb22f34f..86571157dc4 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryHornet.java +++ b/Mage.Sets/src/mage/cards/f/FoundryHornet.java @@ -28,7 +28,7 @@ import mage.filter.predicate.permanent.CounterPredicate; public final class FoundryHornet extends CardImpl { private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a creature with a +1/+1 counter on it"); - private final static FilterCreaturePermanent filterOpponent = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filterOpponent = new FilterCreaturePermanent(); static { filter.add(new CounterPredicate(CounterType.P1P1)); diff --git a/Mage.Sets/src/mage/cards/f/FreyaliseSupplicant.java b/Mage.Sets/src/mage/cards/f/FreyaliseSupplicant.java index 92a0ce7e204..3a0d18ab5c2 100644 --- a/Mage.Sets/src/mage/cards/f/FreyaliseSupplicant.java +++ b/Mage.Sets/src/mage/cards/f/FreyaliseSupplicant.java @@ -27,7 +27,7 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class FreyaliseSupplicant extends CardImpl { - private final static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("red or white creature"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("red or white creature"); static { filter.add(Predicates.or(new ColorPredicate(ObjectColor.RED), diff --git a/Mage.Sets/src/mage/cards/f/FrontierSiege.java b/Mage.Sets/src/mage/cards/f/FrontierSiege.java index 6674c0568f0..00af641bf3b 100644 --- a/Mage.Sets/src/mage/cards/f/FrontierSiege.java +++ b/Mage.Sets/src/mage/cards/f/FrontierSiege.java @@ -39,8 +39,8 @@ public final class FrontierSiege extends CardImpl { filter.add(new AbilityPredicate(FlyingAbility.class)); filter2.add(new ControllerPredicate(TargetController.NOT_YOU)); } - private final static String ruleTrigger1 = "&bull Khans — At the beginning of each of your main phases, add {G}{G}."; - private final static String ruleTrigger2 = "&bull Dragons — Whenever a creature with flying enters the battlefield under your control, you may have it fight target creature you don't control."; + private static final String ruleTrigger1 = "&bull Khans — At the beginning of each of your main phases, add {G}{G}."; + private static final String ruleTrigger2 = "&bull Dragons — Whenever a creature with flying enters the battlefield under your control, you may have it fight target creature you don't control."; public FrontierSiege(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{G}"); diff --git a/Mage.Sets/src/mage/cards/g/GOTOJAIL.java b/Mage.Sets/src/mage/cards/g/GOTOJAIL.java index f7eea87ac1b..acfb52eb170 100644 --- a/Mage.Sets/src/mage/cards/g/GOTOJAIL.java +++ b/Mage.Sets/src/mage/cards/g/GOTOJAIL.java @@ -33,7 +33,7 @@ import mage.util.CardUtil; */ public final class GOTOJAIL extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/g/GaeasLiege.java b/Mage.Sets/src/mage/cards/g/GaeasLiege.java index 0b4a5d87def..99c8c30d33f 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasLiege.java +++ b/Mage.Sets/src/mage/cards/g/GaeasLiege.java @@ -34,7 +34,7 @@ import mage.target.common.TargetLandPermanent; */ public final class GaeasLiege extends CardImpl { - final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); + static final FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); static { filterLands.add(new SubtypePredicate(SubType.FOREST)); diff --git a/Mage.Sets/src/mage/cards/g/GangrenousZombies.java b/Mage.Sets/src/mage/cards/g/GangrenousZombies.java index 4fd7847eb5b..17fca38a81c 100644 --- a/Mage.Sets/src/mage/cards/g/GangrenousZombies.java +++ b/Mage.Sets/src/mage/cards/g/GangrenousZombies.java @@ -27,7 +27,7 @@ import java.util.UUID; */ public final class GangrenousZombies extends CardImpl { - private final static FilterLandPermanent filter = new FilterLandPermanent(); + private static final FilterLandPermanent filter = new FilterLandPermanent(); static { filter.add(new SupertypePredicate(SuperType.SNOW)); diff --git a/Mage.Sets/src/mage/cards/g/GeneralTazri.java b/Mage.Sets/src/mage/cards/g/GeneralTazri.java index c66d44f2502..013d1bd9199 100644 --- a/Mage.Sets/src/mage/cards/g/GeneralTazri.java +++ b/Mage.Sets/src/mage/cards/g/GeneralTazri.java @@ -68,7 +68,7 @@ public final class GeneralTazri extends CardImpl { class GeneralTazriColorCount implements DynamicValue { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new SubtypePredicate((SubType.ALLY))); diff --git a/Mage.Sets/src/mage/cards/g/GhalmasWarden.java b/Mage.Sets/src/mage/cards/g/GhalmasWarden.java index 22f8bb494b8..a371efbecb3 100644 --- a/Mage.Sets/src/mage/cards/g/GhalmasWarden.java +++ b/Mage.Sets/src/mage/cards/g/GhalmasWarden.java @@ -22,7 +22,7 @@ import mage.constants.Zone; */ public final class GhalmasWarden extends CardImpl { - private static final String text = "Metalcraft — Ghalma's Warden gets +2/+2 as long as you control three or more artifacts"; + private static final String rule = "Metalcraft — Ghalma's Warden gets +2/+2 as long as you control three or more artifacts"; public GhalmasWarden (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}"); @@ -32,7 +32,7 @@ public final class GhalmasWarden extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(4); ContinuousEffect boostSource = new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield); - ConditionalContinuousEffect effect = new ConditionalContinuousEffect(boostSource, MetalcraftCondition.instance, text); + ConditionalContinuousEffect effect = new ConditionalContinuousEffect(boostSource, MetalcraftCondition.instance, rule); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/g/GideonBattleForged.java b/Mage.Sets/src/mage/cards/g/GideonBattleForged.java index 79b48010596..f54e3445b75 100644 --- a/Mage.Sets/src/mage/cards/g/GideonBattleForged.java +++ b/Mage.Sets/src/mage/cards/g/GideonBattleForged.java @@ -35,7 +35,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class GideonBattleForged extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/g/GideonsResolve.java b/Mage.Sets/src/mage/cards/g/GideonsResolve.java index c5826bf3351..561bac51b20 100644 --- a/Mage.Sets/src/mage/cards/g/GideonsResolve.java +++ b/Mage.Sets/src/mage/cards/g/GideonsResolve.java @@ -20,7 +20,7 @@ import mage.filter.predicate.mageobject.NamePredicate; */ public final class GideonsResolve extends CardImpl { - private final static FilterCard filter = new FilterCard("Gideon, Martial Paragon"); + private static final FilterCard filter = new FilterCard("Gideon, Martial Paragon"); static { filter.add(new NamePredicate("Gideon, Martial Paragon")); diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java b/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java index 07e4251a6a4..3395c5e64b7 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafWinnower.java @@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class GiltLeafWinnower extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Elf creature whose power and toughness aren't equal"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Elf creature whose power and toughness aren't equal"); static { filter.add(Predicates.not(new SubtypePredicate(SubType.ELF))); diff --git a/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java b/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java index 4258c96d373..939b63db59c 100644 --- a/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java +++ b/Mage.Sets/src/mage/cards/g/GlimmerpointStag.java @@ -30,7 +30,7 @@ import mage.target.targetpointer.FixedTarget; */ public final class GlimmerpointStag extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("another target permanent"); + private static final FilterPermanent filter = new FilterPermanent("another target permanent"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java b/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java index a58d85839da..be62dc9f0f5 100644 --- a/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java +++ b/Mage.Sets/src/mage/cards/g/GnarlrootTrapper.java @@ -35,7 +35,7 @@ import java.util.UUID; */ public final class GnarlrootTrapper extends CardImpl { - private final static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("attacking ELf you control"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("attacking ELf you control"); static { filter.add(AttackingPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/g/GoblinChainwhirler.java b/Mage.Sets/src/mage/cards/g/GoblinChainwhirler.java index b199353a7e0..9444c594518 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinChainwhirler.java +++ b/Mage.Sets/src/mage/cards/g/GoblinChainwhirler.java @@ -24,7 +24,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class GoblinChainwhirler extends CardImpl { - final static FilterPermanent filter = new FilterPermanent("creatures and planeswalkers your opponents control"); + static final FilterPermanent filter = new FilterPermanent("creatures and planeswalkers your opponents control"); static { filter.add(Predicates.or( diff --git a/Mage.Sets/src/mage/cards/g/GoblinTrenches.java b/Mage.Sets/src/mage/cards/g/GoblinTrenches.java index 5b3e4dc9449..1fa892e6106 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinTrenches.java +++ b/Mage.Sets/src/mage/cards/g/GoblinTrenches.java @@ -22,7 +22,7 @@ import mage.target.common.TargetControlledPermanent; */ public final class GoblinTrenches extends CardImpl { - final static FilterControlledPermanent filter = new FilterControlledLandPermanent("a land"); + static final FilterControlledPermanent filter = new FilterControlledLandPermanent("a land"); public GoblinTrenches(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}{W}"); diff --git a/Mage.Sets/src/mage/cards/g/Gomazoa.java b/Mage.Sets/src/mage/cards/g/Gomazoa.java index c6b38885841..b3163a4fda5 100644 --- a/Mage.Sets/src/mage/cards/g/Gomazoa.java +++ b/Mage.Sets/src/mage/cards/g/Gomazoa.java @@ -87,9 +87,8 @@ class GomazoaEffect extends OneShotEffect { } BlockedByWatcher watcher = game.getState().getWatcher(BlockedByWatcher.class, source.getSourceId()); - creaturesBlocked = watcher.blockedByWatcher; - for (UUID blockedById : creaturesBlocked) { + for (UUID blockedById : watcher.getBlockedByWatcher()) { Permanent blockedByGomazoa = game.getPermanent(blockedById); if (blockedByGomazoa != null && blockedByGomazoa.isAttacking()) { players.add(blockedByGomazoa.getOwnerId()); @@ -114,13 +113,17 @@ class GomazoaEffect extends OneShotEffect { class BlockedByWatcher extends Watcher { - public List blockedByWatcher = new ArrayList<>(); + public List getBlockedByWatcher() { + return blockedByWatcher; + } + + private List blockedByWatcher = new ArrayList<>(); public BlockedByWatcher() { super(BlockedByWatcher.class.getSimpleName(), WatcherScope.CARD); } - public BlockedByWatcher(final BlockedByWatcher watcher) { + private BlockedByWatcher(final BlockedByWatcher watcher) { super(watcher); this.blockedByWatcher.addAll(watcher.blockedByWatcher); } diff --git a/Mage.Sets/src/mage/cards/g/GraspingCurrent.java b/Mage.Sets/src/mage/cards/g/GraspingCurrent.java index 7d37e336b05..bc0c1719754 100644 --- a/Mage.Sets/src/mage/cards/g/GraspingCurrent.java +++ b/Mage.Sets/src/mage/cards/g/GraspingCurrent.java @@ -17,7 +17,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class GraspingCurrent extends CardImpl { - private final static FilterCard filter = new FilterCard("Jace, Ingenious Mind-Mage"); + private static final FilterCard filter = new FilterCard("Jace, Ingenious Mind-Mage"); static { filter.add(new NamePredicate("Jace, Ingenious Mind-Mage")); diff --git a/Mage.Sets/src/mage/cards/g/GravityNegator.java b/Mage.Sets/src/mage/cards/g/GravityNegator.java index 17673de97b7..e96d7f465a8 100644 --- a/Mage.Sets/src/mage/cards/g/GravityNegator.java +++ b/Mage.Sets/src/mage/cards/g/GravityNegator.java @@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class GravityNegator extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another target creature"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/g/GravitySphere.java b/Mage.Sets/src/mage/cards/g/GravitySphere.java index 97871089dcc..e0fa620fd15 100644 --- a/Mage.Sets/src/mage/cards/g/GravitySphere.java +++ b/Mage.Sets/src/mage/cards/g/GravitySphere.java @@ -21,7 +21,7 @@ import mage.filter.predicate.mageobject.CardTypePredicate; */ public final class GravitySphere extends CardImpl { - final static private FilterPermanent filter = new FilterPermanent("All creatures"); + static final private FilterPermanent filter = new FilterPermanent("All creatures"); static { filter.add(new CardTypePredicate(CardType.CREATURE)); diff --git a/Mage.Sets/src/mage/cards/h/HagHedgeMage.java b/Mage.Sets/src/mage/cards/h/HagHedgeMage.java index ccbc85ed309..b7cd8bee854 100644 --- a/Mage.Sets/src/mage/cards/h/HagHedgeMage.java +++ b/Mage.Sets/src/mage/cards/h/HagHedgeMage.java @@ -26,8 +26,8 @@ import mage.target.common.TargetCardInYourGraveyard; */ public final class HagHedgeMage extends CardImpl { - private final static FilterLandPermanent filter = new FilterLandPermanent(); - private final static FilterLandPermanent filter2 = new FilterLandPermanent(); + private static final FilterLandPermanent filter = new FilterLandPermanent(); + private static final FilterLandPermanent filter2 = new FilterLandPermanent(); static { filter.add(new SubtypePredicate(SubType.SWAMP)); diff --git a/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java b/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java index 686f5165e3d..a973a49601e 100644 --- a/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java +++ b/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java @@ -33,7 +33,7 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class HammerOfNazahn extends CardImpl { - private final static FilterEquipmentPermanent filter = new FilterEquipmentPermanent("{this} or another Equipment"); + private static final FilterEquipmentPermanent filter = new FilterEquipmentPermanent("{this} or another Equipment"); public HammerOfNazahn(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); diff --git a/Mage.Sets/src/mage/cards/h/HarbingerOfTheTides.java b/Mage.Sets/src/mage/cards/h/HarbingerOfTheTides.java index 407f1fe645c..b88edd61b70 100644 --- a/Mage.Sets/src/mage/cards/h/HarbingerOfTheTides.java +++ b/Mage.Sets/src/mage/cards/h/HarbingerOfTheTides.java @@ -24,7 +24,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class HarbingerOfTheTides extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature an opponent controls"); static { filter.add(TappedPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/h/Havoc.java b/Mage.Sets/src/mage/cards/h/Havoc.java index 36f247a89d8..705d130dfd7 100644 --- a/Mage.Sets/src/mage/cards/h/Havoc.java +++ b/Mage.Sets/src/mage/cards/h/Havoc.java @@ -20,7 +20,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public final class Havoc extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a white spell"); + private static final FilterSpell filter = new FilterSpell("a white spell"); static { filter.add(new ColorPredicate(ObjectColor.WHITE)); diff --git a/Mage.Sets/src/mage/cards/h/HazoretsUndyingFury.java b/Mage.Sets/src/mage/cards/h/HazoretsUndyingFury.java index da4bc9daf01..9c6f84ce5bc 100644 --- a/Mage.Sets/src/mage/cards/h/HazoretsUndyingFury.java +++ b/Mage.Sets/src/mage/cards/h/HazoretsUndyingFury.java @@ -60,7 +60,7 @@ public final class HazoretsUndyingFury extends CardImpl { class HazoretsUndyingFuryEffect extends OneShotEffect { - private final static FilterCard filter = new FilterCard("nonland cards with converted mana cost 5 or less"); + private static final FilterCard filter = new FilterCard("nonland cards with converted mana cost 5 or less"); static { filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); diff --git a/Mage.Sets/src/mage/cards/h/HeartWolf.java b/Mage.Sets/src/mage/cards/h/HeartWolf.java index 7409660149e..3c88995a5b0 100644 --- a/Mage.Sets/src/mage/cards/h/HeartWolf.java +++ b/Mage.Sets/src/mage/cards/h/HeartWolf.java @@ -33,7 +33,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class HeartWolf extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new SubtypePredicate(SubType.DWARF)); diff --git a/Mage.Sets/src/mage/cards/h/HedronAlignment.java b/Mage.Sets/src/mage/cards/h/HedronAlignment.java index 6a8f16e8a3a..15cc1101d32 100644 --- a/Mage.Sets/src/mage/cards/h/HedronAlignment.java +++ b/Mage.Sets/src/mage/cards/h/HedronAlignment.java @@ -54,8 +54,8 @@ public final class HedronAlignment extends CardImpl { class HedronAlignmentEffect extends OneShotEffect { - private final static FilterPermanent filterPermanent = new FilterPermanent(); - private final static FilterCard filterCard = new FilterCard(); + private static final FilterPermanent filterPermanent = new FilterPermanent(); + private static final FilterCard filterCard = new FilterCard(); static { filterPermanent.add(new NamePredicate("Hedron Alignment")); diff --git a/Mage.Sets/src/mage/cards/h/HematiteTalisman.java b/Mage.Sets/src/mage/cards/h/HematiteTalisman.java index bde61499bd3..9671fbf4f35 100644 --- a/Mage.Sets/src/mage/cards/h/HematiteTalisman.java +++ b/Mage.Sets/src/mage/cards/h/HematiteTalisman.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class HematiteTalisman extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a red spell"); + private static final FilterSpell filter = new FilterSpell("a red spell"); static { filter.add(new ColorPredicate(ObjectColor.RED)); diff --git a/Mage.Sets/src/mage/cards/h/HiddenPredators.java b/Mage.Sets/src/mage/cards/h/HiddenPredators.java index 689c3237cfe..9ddb3d20034 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenPredators.java +++ b/Mage.Sets/src/mage/cards/h/HiddenPredators.java @@ -44,7 +44,7 @@ public final class HiddenPredators extends CardImpl { class HiddenPredatorsStateTriggeredAbility extends StateTriggeredAbility { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/h/HieromancersCage.java b/Mage.Sets/src/mage/cards/h/HieromancersCage.java index 500f420a1f8..55c0c5366da 100644 --- a/Mage.Sets/src/mage/cards/h/HieromancersCage.java +++ b/Mage.Sets/src/mage/cards/h/HieromancersCage.java @@ -20,7 +20,7 @@ import mage.target.TargetPermanent; */ public final class HieromancersCage extends CardImpl { - private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/h/Hivestone.java b/Mage.Sets/src/mage/cards/h/Hivestone.java index 8f8831507c1..4617132c446 100644 --- a/Mage.Sets/src/mage/cards/h/Hivestone.java +++ b/Mage.Sets/src/mage/cards/h/Hivestone.java @@ -17,7 +17,7 @@ import mage.util.SubTypeList; */ public final class Hivestone extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java b/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java index 153452b9934..008c3899ef0 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfCleansingFire.java @@ -21,7 +21,7 @@ import java.util.UUID; */ public final class HondenOfCleansingFire extends CardImpl { - final static FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); + static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); static { filter.add(new SubtypePredicate(SubType.SHRINE)); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java b/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java index cb15e6262a7..e543cfea2ce 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfInfiniteRage.java @@ -24,7 +24,7 @@ import java.util.UUID; */ public final class HondenOfInfiniteRage extends CardImpl { - final static FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); + static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); static { filter.add(new SubtypePredicate(SubType.SHRINE)); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java b/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java index 9fb8e848a76..82dd9e47210 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfLifesWeb.java @@ -22,7 +22,7 @@ import java.util.UUID; */ public final class HondenOfLifesWeb extends CardImpl { - final static FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); + static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); static { filter.add(new SubtypePredicate(SubType.SHRINE)); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java b/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java index 57a394f638f..74f72e34c99 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfNightsReach.java @@ -23,7 +23,7 @@ import java.util.UUID; */ public final class HondenOfNightsReach extends CardImpl { - final static FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); + static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); static { filter.add(new SubtypePredicate(SubType.SHRINE)); diff --git a/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java b/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java index 97f4974fd41..d4954be5bbe 100644 --- a/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java +++ b/Mage.Sets/src/mage/cards/h/HondenOfSeeingWinds.java @@ -21,7 +21,7 @@ import java.util.UUID; */ public final class HondenOfSeeingWinds extends CardImpl { - final static FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); + static final FilterControlledPermanent filter = new FilterControlledPermanent("Shrine"); static { filter.add(new SubtypePredicate(SubType.SHRINE)); diff --git a/Mage.Sets/src/mage/cards/h/HoodedHorror.java b/Mage.Sets/src/mage/cards/h/HoodedHorror.java index fdf79b4f147..5afe72dec96 100644 --- a/Mage.Sets/src/mage/cards/h/HoodedHorror.java +++ b/Mage.Sets/src/mage/cards/h/HoodedHorror.java @@ -45,7 +45,7 @@ public final class HoodedHorror extends CardImpl { class HoodedHorrorCantBeBlockedEffect extends RestrictionEffect { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); public HoodedHorrorCantBeBlockedEffect() { super(Duration.WhileOnBattlefield); diff --git a/Mage.Sets/src/mage/cards/h/HordeAmbusher.java b/Mage.Sets/src/mage/cards/h/HordeAmbusher.java index 2f33326dbc3..74e88895dc2 100644 --- a/Mage.Sets/src/mage/cards/h/HordeAmbusher.java +++ b/Mage.Sets/src/mage/cards/h/HordeAmbusher.java @@ -28,7 +28,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class HordeAmbusher extends CardImpl { - private final static FilterCard filter = new FilterCard("a red card in your hand"); + private static final FilterCard filter = new FilterCard("a red card in your hand"); static { filter.add(new ColorPredicate(ObjectColor.RED)); } diff --git a/Mage.Sets/src/mage/cards/h/HordeOfNotions.java b/Mage.Sets/src/mage/cards/h/HordeOfNotions.java index a1f81ada04a..c532a8636e7 100644 --- a/Mage.Sets/src/mage/cards/h/HordeOfNotions.java +++ b/Mage.Sets/src/mage/cards/h/HordeOfNotions.java @@ -27,7 +27,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public final class HordeOfNotions extends CardImpl { - private final static FilterCard filter = new FilterCard("Elemental card from your graveyard"); + private static final FilterCard filter = new FilterCard("Elemental card from your graveyard"); static { filter.add(new SubtypePredicate(SubType.ELEMENTAL)); diff --git a/Mage.Sets/src/mage/cards/h/HostageTaker.java b/Mage.Sets/src/mage/cards/h/HostageTaker.java index bf8e4cd7ba6..2006065336c 100644 --- a/Mage.Sets/src/mage/cards/h/HostageTaker.java +++ b/Mage.Sets/src/mage/cards/h/HostageTaker.java @@ -38,7 +38,7 @@ import mage.util.CardUtil; */ public final class HostageTaker extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("another target artifact or creature"); + private static final FilterPermanent filter = new FilterPermanent("another target artifact or creature"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java b/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java index f66fce35136..9206adf00fc 100644 --- a/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java +++ b/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java @@ -23,7 +23,7 @@ import mage.constants.Zone; */ public final class HoundOfTheFarbogs extends CardImpl { - final static private String RULE = "{this} has menace as long as there are four or more card types among cards in your graveyard"; + static final private String RULE = "{this} has menace as long as there are four or more card types among cards in your graveyard"; public HoundOfTheFarbogs(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); diff --git a/Mage.Sets/src/mage/cards/h/HungryLynx.java b/Mage.Sets/src/mage/cards/h/HungryLynx.java index fcd7a42ad1a..510456806f8 100644 --- a/Mage.Sets/src/mage/cards/h/HungryLynx.java +++ b/Mage.Sets/src/mage/cards/h/HungryLynx.java @@ -33,7 +33,7 @@ import mage.target.common.TargetOpponent; */ public final class HungryLynx extends CardImpl { - private final static FilterControlledCreaturePermanent filterCat = new FilterControlledCreaturePermanent("Cats"); + private static final FilterControlledCreaturePermanent filterCat = new FilterControlledCreaturePermanent("Cats"); static { filterCat.add(new SubtypePredicate(SubType.CAT)); } @@ -43,7 +43,7 @@ public final class HungryLynx extends CardImpl { filterProRat.add(new SubtypePredicate(SubType.RAT)); } - private final static FilterCreaturePermanent filterRat = new FilterCreaturePermanent("a Rat"); + private static final FilterCreaturePermanent filterRat = new FilterCreaturePermanent("a Rat"); static { filterRat.add(new SubtypePredicate(SubType.RAT)); } diff --git a/Mage.Sets/src/mage/cards/h/HydromorphGuardian.java b/Mage.Sets/src/mage/cards/h/HydromorphGuardian.java index e2e0ce0be08..4ed1b891f70 100644 --- a/Mage.Sets/src/mage/cards/h/HydromorphGuardian.java +++ b/Mage.Sets/src/mage/cards/h/HydromorphGuardian.java @@ -25,7 +25,7 @@ import mage.target.TargetSpell; */ public final class HydromorphGuardian extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets one or more creatures you control"); + private static final FilterSpell filter = new FilterSpell("spell that targets one or more creatures you control"); static { filter.add(new TargetsPermanentPredicate(new FilterControlledCreaturePermanent())); diff --git a/Mage.Sets/src/mage/cards/h/HydromorphGull.java b/Mage.Sets/src/mage/cards/h/HydromorphGull.java index 999873891cd..8ad0d29c449 100644 --- a/Mage.Sets/src/mage/cards/h/HydromorphGull.java +++ b/Mage.Sets/src/mage/cards/h/HydromorphGull.java @@ -26,7 +26,7 @@ import mage.target.TargetSpell; */ public final class HydromorphGull extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets one or more creatures you control"); + private static final FilterSpell filter = new FilterSpell("spell that targets one or more creatures you control"); static { filter.add(new TargetsPermanentPredicate(new FilterControlledCreaturePermanent())); diff --git a/Mage.Sets/src/mage/cards/i/IdentityThief.java b/Mage.Sets/src/mage/cards/i/IdentityThief.java index cfa04ef2f5f..1ba731dba64 100644 --- a/Mage.Sets/src/mage/cards/i/IdentityThief.java +++ b/Mage.Sets/src/mage/cards/i/IdentityThief.java @@ -34,7 +34,7 @@ import mage.target.targetpointer.FixedTarget; */ public final class IdentityThief extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("target nontoken creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("target nontoken creature"); static { filter.add(Predicates.not(TokenPredicate.instance)); diff --git a/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java b/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java index 80720c49bcf..3ddded171c8 100644 --- a/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java +++ b/Mage.Sets/src/mage/cards/i/ImmobilizerEldrazi.java @@ -25,7 +25,7 @@ import mage.game.Game; */ public final class ImmobilizerEldrazi extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Each creature with toughness greater than its power"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Each creature with toughness greater than its power"); static { filter.add(new ImmobilizerEldraziPredicate()); diff --git a/Mage.Sets/src/mage/cards/i/InfernalTribute.java b/Mage.Sets/src/mage/cards/i/InfernalTribute.java index 51a53d5c831..5402c969ab9 100644 --- a/Mage.Sets/src/mage/cards/i/InfernalTribute.java +++ b/Mage.Sets/src/mage/cards/i/InfernalTribute.java @@ -22,7 +22,7 @@ import mage.target.common.TargetControlledPermanent; */ public final class InfernalTribute extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("a nontoken permanent"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("a nontoken permanent"); static { filter.add(Predicates.not(TokenPredicate.instance)); diff --git a/Mage.Sets/src/mage/cards/i/Intervene.java b/Mage.Sets/src/mage/cards/i/Intervene.java index e4585a019e3..7fc9a864cce 100644 --- a/Mage.Sets/src/mage/cards/i/Intervene.java +++ b/Mage.Sets/src/mage/cards/i/Intervene.java @@ -17,7 +17,7 @@ import mage.target.TargetSpell; */ public final class Intervene extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets a creature"); + private static final FilterSpell filter = new FilterSpell("spell that targets a creature"); static { filter.add(new TargetsPermanentPredicate(new FilterCreaturePermanent())); diff --git a/Mage.Sets/src/mage/cards/i/InvasiveSurgery.java b/Mage.Sets/src/mage/cards/i/InvasiveSurgery.java index 432597bd9c0..f071d979891 100644 --- a/Mage.Sets/src/mage/cards/i/InvasiveSurgery.java +++ b/Mage.Sets/src/mage/cards/i/InvasiveSurgery.java @@ -24,7 +24,7 @@ import mage.target.TargetSpell; */ public final class InvasiveSurgery extends CardImpl { - private final static FilterSpell filter = new FilterSpell("sorcery spell"); + private static final FilterSpell filter = new FilterSpell("sorcery spell"); static { filter.add(new CardTypePredicate(CardType.SORCERY)); diff --git a/Mage.Sets/src/mage/cards/i/IroncladSlayer.java b/Mage.Sets/src/mage/cards/i/IroncladSlayer.java index 7bd1a2382c7..2a020c38659 100644 --- a/Mage.Sets/src/mage/cards/i/IroncladSlayer.java +++ b/Mage.Sets/src/mage/cards/i/IroncladSlayer.java @@ -22,7 +22,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public final class IroncladSlayer extends CardImpl { - private final static FilterCard filter = new FilterCard("Aura or Equipment card from your graveyard"); + private static final FilterCard filter = new FilterCard("Aura or Equipment card from your graveyard"); static { filter.add(Predicates.or(new SubtypePredicate(SubType.AURA), new SubtypePredicate(SubType.EQUIPMENT))); diff --git a/Mage.Sets/src/mage/cards/i/IslandSanctuary.java b/Mage.Sets/src/mage/cards/i/IslandSanctuary.java index aabf94d6899..b5effdc0e10 100644 --- a/Mage.Sets/src/mage/cards/i/IslandSanctuary.java +++ b/Mage.Sets/src/mage/cards/i/IslandSanctuary.java @@ -47,7 +47,7 @@ public final class IslandSanctuary extends CardImpl { class IslandSanctuaryEffect extends ReplacementEffectImpl { - private final static FilterCreaturePermanent notFlyingorIslandwalkCreatures = new FilterCreaturePermanent("except by creatures with flying and/or islandwalk"); + private static final FilterCreaturePermanent notFlyingorIslandwalkCreatures = new FilterCreaturePermanent("except by creatures with flying and/or islandwalk"); static { notFlyingorIslandwalkCreatures.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); diff --git a/Mage.Sets/src/mage/cards/i/IsolationZone.java b/Mage.Sets/src/mage/cards/i/IsolationZone.java index 3867b799b91..3ae0ee0781c 100644 --- a/Mage.Sets/src/mage/cards/i/IsolationZone.java +++ b/Mage.Sets/src/mage/cards/i/IsolationZone.java @@ -28,7 +28,7 @@ import mage.util.CardUtil; */ public final class IsolationZone extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("creature or enchantment an opponent controls"); + private static final FilterPermanent filter = new FilterPermanent("creature or enchantment an opponent controls"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), diff --git a/Mage.Sets/src/mage/cards/i/IxalansBinding.java b/Mage.Sets/src/mage/cards/i/IxalansBinding.java index 95be9e826b8..a1424f478f3 100644 --- a/Mage.Sets/src/mage/cards/i/IxalansBinding.java +++ b/Mage.Sets/src/mage/cards/i/IxalansBinding.java @@ -27,7 +27,7 @@ import java.util.UUID; */ public final class IxalansBinding extends CardImpl { - private final static FilterNonlandPermanent filter = new FilterNonlandPermanent(); + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java b/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java index f30969c2793..e4628b30450 100644 --- a/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java +++ b/Mage.Sets/src/mage/cards/k/KalonianTwingrove.java @@ -26,7 +26,7 @@ import mage.game.permanent.token.KalonianTwingroveTreefolkWarriorToken; */ public final class KalonianTwingrove extends CardImpl { - final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); + static final FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); static { filterLands.add(new SubtypePredicate(SubType.FOREST)); diff --git a/Mage.Sets/src/mage/cards/k/KorEntanglers.java b/Mage.Sets/src/mage/cards/k/KorEntanglers.java index 30a2b08e5e0..68281bfe4bc 100644 --- a/Mage.Sets/src/mage/cards/k/KorEntanglers.java +++ b/Mage.Sets/src/mage/cards/k/KorEntanglers.java @@ -21,7 +21,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class KorEntanglers extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java b/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java index bb9df93824a..2b3d30d85f8 100644 --- a/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java +++ b/Mage.Sets/src/mage/cards/k/KothophedSoulHoarder.java @@ -31,7 +31,7 @@ import mage.players.Player; */ public final class KothophedSoulHoarder extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent(); + private static final FilterPermanent filter = new FilterPermanent(); static { filter.add(new OwnerPredicate(TargetController.NOT_YOU)); diff --git a/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java b/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java index 5a54db01e41..f94965c1a73 100644 --- a/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java +++ b/Mage.Sets/src/mage/cards/l/LapisLazuliTalisman.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class LapisLazuliTalisman extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a blue spell"); + private static final FilterSpell filter = new FilterSpell("a blue spell"); static { filter.add(new ColorPredicate(ObjectColor.BLUE)); diff --git a/Mage.Sets/src/mage/cards/l/LiberatingCombustion.java b/Mage.Sets/src/mage/cards/l/LiberatingCombustion.java index 3594272808a..339bdf95df6 100644 --- a/Mage.Sets/src/mage/cards/l/LiberatingCombustion.java +++ b/Mage.Sets/src/mage/cards/l/LiberatingCombustion.java @@ -17,7 +17,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class LiberatingCombustion extends CardImpl { - private final static FilterCard filter = new FilterCard("Chandra, Pyrogenius"); + private static final FilterCard filter = new FilterCard("Chandra, Pyrogenius"); static { filter.add(new NamePredicate("Chandra, Pyrogenius")); diff --git a/Mage.Sets/src/mage/cards/l/LightningCloud.java b/Mage.Sets/src/mage/cards/l/LightningCloud.java index ddd5835798a..d3aa563ea6b 100644 --- a/Mage.Sets/src/mage/cards/l/LightningCloud.java +++ b/Mage.Sets/src/mage/cards/l/LightningCloud.java @@ -21,7 +21,7 @@ import mage.target.common.TargetAnyTarget; */ public final class LightningCloud extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a red spell"); + private static final FilterSpell filter = new FilterSpell("a red spell"); static { filter.add(new ColorPredicate(ObjectColor.RED)); diff --git a/Mage.Sets/src/mage/cards/l/LilianasInfluence.java b/Mage.Sets/src/mage/cards/l/LilianasInfluence.java index a9876a6855c..7ba1d7345a5 100644 --- a/Mage.Sets/src/mage/cards/l/LilianasInfluence.java +++ b/Mage.Sets/src/mage/cards/l/LilianasInfluence.java @@ -20,8 +20,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class LilianasInfluence extends CardImpl { - private final static FilterCard filter = new FilterCard("Liliana, Death Wielder"); - private final static FilterCreaturePermanent filterCreatures = new FilterCreaturePermanent("creature you don't control"); + private static final FilterCard filter = new FilterCard("Liliana, Death Wielder"); + private static final FilterCreaturePermanent filterCreatures = new FilterCreaturePermanent("creature you don't control"); static { filter.add(new NamePredicate("Liliana, Death Wielder")); diff --git a/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java b/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java index 35e2289a12e..fb71ecab761 100644 --- a/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java +++ b/Mage.Sets/src/mage/cards/m/MalachiteTalisman.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class MalachiteTalisman extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a green spell"); + private static final FilterSpell filter = new FilterSpell("a green spell"); static { filter.add(new ColorPredicate(ObjectColor.GREEN)); diff --git a/Mage.Sets/src/mage/cards/m/ManaWeb.java b/Mage.Sets/src/mage/cards/m/ManaWeb.java index 20c06c5a7fa..5fce3c5d7b1 100644 --- a/Mage.Sets/src/mage/cards/m/ManaWeb.java +++ b/Mage.Sets/src/mage/cards/m/ManaWeb.java @@ -85,7 +85,7 @@ class ManaWebTriggeredAbility extends TriggeredAbilityImpl { class ManaWebeffect extends OneShotEffect { - private final static FilterLandPermanent filter = new FilterLandPermanent("an opponent taps a land"); + private static final FilterLandPermanent filter = new FilterLandPermanent("an opponent taps a land"); public ManaWebeffect() { super(Outcome.Tap); diff --git a/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java b/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java index 389a96dd0f3..2aaf0d54082 100644 --- a/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java +++ b/Mage.Sets/src/mage/cards/m/MaraudingMaulhorn.java @@ -20,7 +20,7 @@ import mage.filter.predicate.mageobject.NamePredicate; */ public final class MaraudingMaulhorn extends CardImpl { - private final static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature named Advocate of the Beast"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature named Advocate of the Beast"); static { filter.add(new NamePredicate("Advocate of the Beast")); diff --git a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java index 9d78d64c7fb..e1e100f8d9e 100644 --- a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java +++ b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java @@ -25,7 +25,7 @@ import java.util.UUID; */ public final class MausoleumHarpy extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/m/MerchantsDockhand.java b/Mage.Sets/src/mage/cards/m/MerchantsDockhand.java index 6c160eca919..e6f65a9075b 100644 --- a/Mage.Sets/src/mage/cards/m/MerchantsDockhand.java +++ b/Mage.Sets/src/mage/cards/m/MerchantsDockhand.java @@ -112,7 +112,7 @@ class MerchantsDockhandEffect extends OneShotEffect { class TapXTargetCost extends VariableCostImpl { - final static FilterControlledArtifactPermanent filter = new FilterControlledArtifactPermanent("untapped artifacts you control"); + static final FilterControlledArtifactPermanent filter = new FilterControlledArtifactPermanent("untapped artifacts you control"); static { filter.add(Predicates.not(TappedPredicate.instance)); diff --git a/Mage.Sets/src/mage/cards/m/Mirrorworks.java b/Mage.Sets/src/mage/cards/m/Mirrorworks.java index c96992b9a42..95b8e4cc1d7 100644 --- a/Mage.Sets/src/mage/cards/m/Mirrorworks.java +++ b/Mage.Sets/src/mage/cards/m/Mirrorworks.java @@ -23,7 +23,7 @@ import mage.filter.predicate.permanent.TokenPredicate; */ public final class Mirrorworks extends CardImpl { - private final static FilterArtifactPermanent filter = new FilterArtifactPermanent("another nontoken artifact"); + private static final FilterArtifactPermanent filter = new FilterArtifactPermanent("another nontoken artifact"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/m/MoltenSentry.java b/Mage.Sets/src/mage/cards/m/MoltenSentry.java index d39b4c15517..31ec8892fd9 100644 --- a/Mage.Sets/src/mage/cards/m/MoltenSentry.java +++ b/Mage.Sets/src/mage/cards/m/MoltenSentry.java @@ -25,7 +25,7 @@ import mage.players.Player; */ public final class MoltenSentry extends CardImpl { - private final static String rule = "As {this} enters the battlefield, flip a coin. If the coin comes up heads, {this} enters the battlefield as a " + private static final String rule = "As {this} enters the battlefield, flip a coin. If the coin comes up heads, {this} enters the battlefield as a " + "5/2 creature with haste. If it comes up tails, {this} enters the battlefield as a 2/5 creature with defender."; public MoltenSentry(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MoonlightHunt.java b/Mage.Sets/src/mage/cards/m/MoonlightHunt.java index 1a4d3aa743c..a5d51d980ec 100644 --- a/Mage.Sets/src/mage/cards/m/MoonlightHunt.java +++ b/Mage.Sets/src/mage/cards/m/MoonlightHunt.java @@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class MoonlightHunt extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control"); static { filter.add(new ControllerPredicate(TargetController.NOT_YOU)); @@ -51,7 +51,7 @@ public final class MoonlightHunt extends CardImpl { class MoonlightHuntEffect extends OneShotEffect { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(Predicates.or(new SubtypePredicate(SubType.WOLF), new SubtypePredicate(SubType.WEREWOLF))); diff --git a/Mage.Sets/src/mage/cards/m/MoriokScavenger.java b/Mage.Sets/src/mage/cards/m/MoriokScavenger.java index efc4865b8c8..a2ef0d47338 100644 --- a/Mage.Sets/src/mage/cards/m/MoriokScavenger.java +++ b/Mage.Sets/src/mage/cards/m/MoriokScavenger.java @@ -20,7 +20,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public final class MoriokScavenger extends CardImpl { - final static FilterCreatureCard filter = new FilterCreatureCard("artifact creature card from your graveyard"); + static final FilterCreatureCard filter = new FilterCreatureCard("artifact creature card from your graveyard"); static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); diff --git a/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java b/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java index 5056353cdca..b26b8ec57fe 100644 --- a/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java +++ b/Mage.Sets/src/mage/cards/m/MurderousCompulsion.java @@ -18,7 +18,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class MurderousCompulsion extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); static { filter.add(TappedPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/n/NacreTalisman.java b/Mage.Sets/src/mage/cards/n/NacreTalisman.java index e995f40a399..439180b1c72 100644 --- a/Mage.Sets/src/mage/cards/n/NacreTalisman.java +++ b/Mage.Sets/src/mage/cards/n/NacreTalisman.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class NacreTalisman extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a white spell"); + private static final FilterSpell filter = new FilterSpell("a white spell"); static { filter.add(new ColorPredicate(ObjectColor.WHITE)); diff --git a/Mage.Sets/src/mage/cards/n/NaturesWay.java b/Mage.Sets/src/mage/cards/n/NaturesWay.java index 49d697e5f3b..ce8752367ca 100644 --- a/Mage.Sets/src/mage/cards/n/NaturesWay.java +++ b/Mage.Sets/src/mage/cards/n/NaturesWay.java @@ -23,7 +23,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class NaturesWay extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control"); static { filter.add(new ControllerPredicate(TargetController.NOT_YOU)); diff --git a/Mage.Sets/src/mage/cards/n/Necromancy.java b/Mage.Sets/src/mage/cards/n/Necromancy.java index fe12c03723a..50d87e1e836 100644 --- a/Mage.Sets/src/mage/cards/n/Necromancy.java +++ b/Mage.Sets/src/mage/cards/n/Necromancy.java @@ -138,7 +138,7 @@ class NecromancyLeavesBattlefieldTriggeredEffect extends OneShotEffect { class NecromancyChangeAbilityEffect extends ContinuousEffectImpl implements SourceEffect { - private final static Ability newAbility = new EnchantAbility("creature put onto the battlefield with Necromancy"); + private static final Ability newAbility = new EnchantAbility("creature put onto the battlefield with Necromancy"); static { newAbility.setRuleAtTheTop(true); diff --git a/Mage.Sets/src/mage/cards/n/NettlingImp.java b/Mage.Sets/src/mage/cards/n/NettlingImp.java index 54fb70dae42..c96717e7530 100644 --- a/Mage.Sets/src/mage/cards/n/NettlingImp.java +++ b/Mage.Sets/src/mage/cards/n/NettlingImp.java @@ -33,7 +33,7 @@ import mage.watchers.common.AttackedThisTurnWatcher; */ public final class NettlingImp extends CardImpl { - final static FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Wall"); + static final FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Wall"); static { filter.add(Predicates.not(new SubtypePredicate(SubType.WALL))); diff --git a/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java b/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java index 886d089c0b3..f7a8b2c2273 100644 --- a/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java +++ b/Mage.Sets/src/mage/cards/n/NeurokTransmuter.java @@ -31,7 +31,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class NeurokTransmuter extends CardImpl { - final static FilterCreaturePermanent filter = new FilterCreaturePermanent("artifact creature"); + static final FilterCreaturePermanent filter = new FilterCreaturePermanent("artifact creature"); static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); diff --git a/Mage.Sets/src/mage/cards/n/NiambiFaithfulHealer.java b/Mage.Sets/src/mage/cards/n/NiambiFaithfulHealer.java index 07ef2682dc0..eac1abe1521 100644 --- a/Mage.Sets/src/mage/cards/n/NiambiFaithfulHealer.java +++ b/Mage.Sets/src/mage/cards/n/NiambiFaithfulHealer.java @@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.NamePredicate; */ public final class NiambiFaithfulHealer extends CardImpl { - private final static FilterCard filter = new FilterCard("Teferi, Timebender"); + private static final FilterCard filter = new FilterCard("Teferi, Timebender"); static { filter.add(new NamePredicate("Teferi, Timebender")); diff --git a/Mage.Sets/src/mage/cards/n/NissasDefeat.java b/Mage.Sets/src/mage/cards/n/NissasDefeat.java index 09cbbdc2beb..829cbcd1edd 100644 --- a/Mage.Sets/src/mage/cards/n/NissasDefeat.java +++ b/Mage.Sets/src/mage/cards/n/NissasDefeat.java @@ -26,7 +26,7 @@ import mage.target.TargetPermanent; */ public final class NissasDefeat extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("Forest, green enchantment, or green planeswalker"); + private static final FilterPermanent filter = new FilterPermanent("Forest, green enchantment, or green planeswalker"); static { filter.add(Predicates.or(new SubtypePredicate(SubType.FOREST), diff --git a/Mage.Sets/src/mage/cards/n/NissasJudgment.java b/Mage.Sets/src/mage/cards/n/NissasJudgment.java index 554ddd8068c..cdb1103af43 100644 --- a/Mage.Sets/src/mage/cards/n/NissasJudgment.java +++ b/Mage.Sets/src/mage/cards/n/NissasJudgment.java @@ -27,7 +27,7 @@ import mage.target.targetpointer.SecondTargetPointer; */ public final class NissasJudgment extends CardImpl { - private final static FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creature an opponent controls"); static { FILTER.add(new ControllerPredicate(TargetController.OPPONENT)); @@ -59,8 +59,8 @@ public final class NissasJudgment extends CardImpl { class NissasJudgmentEffect extends OneShotEffect { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); - private final static FilterCreaturePermanent filterWithCounter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filterWithCounter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java b/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java index c117f727616..c459491f62e 100644 --- a/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java +++ b/Mage.Sets/src/mage/cards/n/NoggleHedgeMage.java @@ -27,8 +27,8 @@ import mage.target.common.TargetPlayerOrPlaneswalker; */ public final class NoggleHedgeMage extends CardImpl { - private final static FilterLandPermanent filter = new FilterLandPermanent(); - private final static FilterLandPermanent filter2 = new FilterLandPermanent(); + private static final FilterLandPermanent filter = new FilterLandPermanent(); + private static final FilterLandPermanent filter2 = new FilterLandPermanent(); static { filter.add(new SubtypePredicate(SubType.ISLAND)); diff --git a/Mage.Sets/src/mage/cards/n/NutCollector.java b/Mage.Sets/src/mage/cards/n/NutCollector.java index fc95c907353..69a240a6cdd 100644 --- a/Mage.Sets/src/mage/cards/n/NutCollector.java +++ b/Mage.Sets/src/mage/cards/n/NutCollector.java @@ -23,7 +23,7 @@ import mage.game.permanent.token.SquirrelToken; */ public final class NutCollector extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("squirrel"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("squirrel"); static { filter.add(new SubtypePredicate(SubType.SQUIRREL)); diff --git a/Mage.Sets/src/mage/cards/o/OathOfChandra.java b/Mage.Sets/src/mage/cards/o/OathOfChandra.java index a2a574a5e3d..b71fc7388ac 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfChandra.java +++ b/Mage.Sets/src/mage/cards/o/OathOfChandra.java @@ -30,7 +30,7 @@ import mage.watchers.Watcher; */ public final class OathOfChandra extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/o/OathOfLimDul.java b/Mage.Sets/src/mage/cards/o/OathOfLimDul.java index 2d3aa09c5a7..f650fe48156 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfLimDul.java +++ b/Mage.Sets/src/mage/cards/o/OathOfLimDul.java @@ -88,7 +88,7 @@ class OathOfLimDulTriggeredAbility extends TriggeredAbilityImpl { class OathOfLimDulEffect extends OneShotEffect { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("controlled permanent other than Oath of Lim-Dul"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("controlled permanent other than Oath of Lim-Dul"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/o/OathOfNissa.java b/Mage.Sets/src/mage/cards/o/OathOfNissa.java index 514e75cb565..6f3fd0a6970 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfNissa.java +++ b/Mage.Sets/src/mage/cards/o/OathOfNissa.java @@ -48,7 +48,7 @@ public final class OathOfNissa extends CardImpl { class OathOfNissaEffect extends OneShotEffect { - private final static FilterCard filter = new FilterCard("a creature, land, or planeswalker card"); + private static final FilterCard filter = new FilterCard("a creature, land, or planeswalker card"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), diff --git a/Mage.Sets/src/mage/cards/o/OathOfTeferi.java b/Mage.Sets/src/mage/cards/o/OathOfTeferi.java index db292a88a07..b71265aaf5f 100644 --- a/Mage.Sets/src/mage/cards/o/OathOfTeferi.java +++ b/Mage.Sets/src/mage/cards/o/OathOfTeferi.java @@ -33,7 +33,7 @@ import mage.target.targetpointer.FixedTarget; */ public final class OathOfTeferi extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("another target permanent you control"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("another target permanent you control"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/o/OgreBattledriver.java b/Mage.Sets/src/mage/cards/o/OgreBattledriver.java index 4986765662d..accee718865 100644 --- a/Mage.Sets/src/mage/cards/o/OgreBattledriver.java +++ b/Mage.Sets/src/mage/cards/o/OgreBattledriver.java @@ -26,7 +26,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class OgreBattledriver extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/o/OnyxTalisman.java b/Mage.Sets/src/mage/cards/o/OnyxTalisman.java index 47beb9b9019..75d3edb13f7 100644 --- a/Mage.Sets/src/mage/cards/o/OnyxTalisman.java +++ b/Mage.Sets/src/mage/cards/o/OnyxTalisman.java @@ -21,7 +21,7 @@ import mage.target.TargetPermanent; */ public final class OnyxTalisman extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a black spell"); + private static final FilterSpell filter = new FilterSpell("a black spell"); static { filter.add(new ColorPredicate(ObjectColor.BLACK)); diff --git a/Mage.Sets/src/mage/cards/o/OpenTheArmory.java b/Mage.Sets/src/mage/cards/o/OpenTheArmory.java index d529110cf8f..a0063c18b63 100644 --- a/Mage.Sets/src/mage/cards/o/OpenTheArmory.java +++ b/Mage.Sets/src/mage/cards/o/OpenTheArmory.java @@ -40,15 +40,15 @@ public final class OpenTheArmory extends CardImpl { class OpenTheArmoryTarget extends TargetCardInLibrary { - private static final FilterCard filter = new FilterCard("Aura or Equipment card"); + private static final FilterCard auraOrEquipmentTarget = new FilterCard("Aura or Equipment card"); static { - filter.add(Predicates.or( + auraOrEquipmentTarget.add(Predicates.or( new SubtypePredicate(SubType.EQUIPMENT), new SubtypePredicate(SubType.AURA))); } public OpenTheArmoryTarget() { - super(1, 1, filter.copy()); + super(1, 1, auraOrEquipmentTarget.copy()); } public OpenTheArmoryTarget(final OpenTheArmoryTarget target) { @@ -64,7 +64,7 @@ class OpenTheArmoryTarget extends TargetCardInLibrary { public boolean canTarget(UUID id, Cards cards, Game game) { Card card = cards.get(id, game); if (card != null) { - return filter.match(card, game); + return auraOrEquipmentTarget.match(card, game); } return false; } diff --git a/Mage.Sets/src/mage/cards/o/OrchardSpirit.java b/Mage.Sets/src/mage/cards/o/OrchardSpirit.java index f6d5dec0ff6..d022aacc943 100644 --- a/Mage.Sets/src/mage/cards/o/OrchardSpirit.java +++ b/Mage.Sets/src/mage/cards/o/OrchardSpirit.java @@ -22,7 +22,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate; */ public final class OrchardSpirit extends CardImpl { - private final static FilterCreaturePermanent notFlyingorReachCreatures = new FilterCreaturePermanent("except by creatures with flying or reach"); + private static final FilterCreaturePermanent notFlyingorReachCreatures = new FilterCreaturePermanent("except by creatures with flying or reach"); static { notFlyingorReachCreatures.add(Predicates.not( diff --git a/Mage.Sets/src/mage/cards/o/OupheVandals.java b/Mage.Sets/src/mage/cards/o/OupheVandals.java index d4847067598..2c89a1075f5 100644 --- a/Mage.Sets/src/mage/cards/o/OupheVandals.java +++ b/Mage.Sets/src/mage/cards/o/OupheVandals.java @@ -32,7 +32,7 @@ import mage.target.common.TargetActivatedOrTriggeredAbility; */ public final class OupheVandals extends CardImpl { - private final static FilterStackObject filter = new FilterStackObject("ability from an artifact source"); + private static final FilterStackObject filter = new FilterStackObject("ability from an artifact source"); static { filter.add(new ArtifactSourcePredicate()); diff --git a/Mage.Sets/src/mage/cards/o/OutpostSiege.java b/Mage.Sets/src/mage/cards/o/OutpostSiege.java index 2fabfdbc093..4062fa1c786 100644 --- a/Mage.Sets/src/mage/cards/o/OutpostSiege.java +++ b/Mage.Sets/src/mage/cards/o/OutpostSiege.java @@ -35,8 +35,8 @@ import mage.target.targetpointer.FixedTarget; */ public final class OutpostSiege extends CardImpl { - private final static String ruleTrigger1 = "&bull Khans — At the beginning of your upkeep, exile the top card of your library. Until end of turn, you may play that card."; - private final static String ruleTrigger2 = "&bull Dragons — Whenever a creature you control leaves the battlefield, {this} deals 1 damage to any target."; + private static final String ruleTrigger1 = "&bull Khans — At the beginning of your upkeep, exile the top card of your library. Until end of turn, you may play that card."; + private static final String ruleTrigger2 = "&bull Dragons — Whenever a creature you control leaves the battlefield, {this} deals 1 damage to any target."; public OutpostSiege(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{R}"); diff --git a/Mage.Sets/src/mage/cards/p/PalaceJailer.java b/Mage.Sets/src/mage/cards/p/PalaceJailer.java index d2d832438a6..4ecbe074132 100644 --- a/Mage.Sets/src/mage/cards/p/PalaceJailer.java +++ b/Mage.Sets/src/mage/cards/p/PalaceJailer.java @@ -35,7 +35,7 @@ import mage.util.CardUtil; */ public final class PalaceJailer extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/p/PalaceSiege.java b/Mage.Sets/src/mage/cards/p/PalaceSiege.java index 97624a9c482..e73cefcb5e7 100644 --- a/Mage.Sets/src/mage/cards/p/PalaceSiege.java +++ b/Mage.Sets/src/mage/cards/p/PalaceSiege.java @@ -26,8 +26,8 @@ import java.util.UUID; */ public final class PalaceSiege extends CardImpl { - private final static String ruleTrigger1 = "&bull Khans — At the beginning of your upkeep, return target creature card from your graveyard to your hand."; - private final static String ruleTrigger2 = "&bull Dragons — At the beginning of your upkeep, each opponent loses 2 life and you gain 2 life."; + private static final String ruleTrigger1 = "&bull Khans — At the beginning of your upkeep, return target creature card from your graveyard to your hand."; + private static final String ruleTrigger2 = "&bull Dragons — At the beginning of your upkeep, each opponent loses 2 life and you gain 2 life."; public PalaceSiege(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}{B}"); diff --git a/Mage.Sets/src/mage/cards/p/PathOfMettle.java b/Mage.Sets/src/mage/cards/p/PathOfMettle.java index e2a2759b770..1e016aed39e 100644 --- a/Mage.Sets/src/mage/cards/p/PathOfMettle.java +++ b/Mage.Sets/src/mage/cards/p/PathOfMettle.java @@ -28,7 +28,7 @@ import mage.game.events.GameEvent; */ public final class PathOfMettle extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that doesn't have first strike, double strike, vigilance, or haste"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that doesn't have first strike, double strike, vigilance, or haste"); static { filter.add(Predicates.not(Predicates.or( @@ -67,7 +67,7 @@ public final class PathOfMettle extends CardImpl { class PathOfMettleTriggeredAbility extends TriggeredAbilityImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that doesn't have first strike, double strike, vigilance, or haste"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that doesn't have first strike, double strike, vigilance, or haste"); static { filter.add(Predicates.or( diff --git a/Mage.Sets/src/mage/cards/p/PeopleOfTheWoods.java b/Mage.Sets/src/mage/cards/p/PeopleOfTheWoods.java index 326d9fde0c9..3987f7b24e2 100644 --- a/Mage.Sets/src/mage/cards/p/PeopleOfTheWoods.java +++ b/Mage.Sets/src/mage/cards/p/PeopleOfTheWoods.java @@ -21,7 +21,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; */ public final class PeopleOfTheWoods extends CardImpl { - final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); + static final FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); static { filterLands.add(new SubtypePredicate(SubType.FOREST)); diff --git a/Mage.Sets/src/mage/cards/p/PersonalEnergyShield.java b/Mage.Sets/src/mage/cards/p/PersonalEnergyShield.java index 9fe269d4162..dc6e98fe6ab 100644 --- a/Mage.Sets/src/mage/cards/p/PersonalEnergyShield.java +++ b/Mage.Sets/src/mage/cards/p/PersonalEnergyShield.java @@ -22,7 +22,7 @@ import mage.target.TargetSpell; */ public final class PersonalEnergyShield extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets you or a permanent you control"); + private static final FilterSpell filter = new FilterSpell("spell that targets you or a permanent you control"); static { filter.add(new PersonalEnergyFieldPredicate()); diff --git a/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java b/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java index b4667a3b49b..38d5ac492ad 100644 --- a/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java +++ b/Mage.Sets/src/mage/cards/p/PitilessPlunderer.java @@ -21,7 +21,7 @@ import mage.game.permanent.token.TreasureToken; */ public final class PitilessPlunderer extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/p/PlanarOutburst.java b/Mage.Sets/src/mage/cards/p/PlanarOutburst.java index fab9b40eb52..0d7bfc485ab 100644 --- a/Mage.Sets/src/mage/cards/p/PlanarOutburst.java +++ b/Mage.Sets/src/mage/cards/p/PlanarOutburst.java @@ -17,7 +17,7 @@ import mage.filter.predicate.mageobject.CardTypePredicate; */ public final class PlanarOutburst extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("nonland creatures"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nonland creatures"); static { filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); diff --git a/Mage.Sets/src/mage/cards/p/PoisonbellyOgre.java b/Mage.Sets/src/mage/cards/p/PoisonbellyOgre.java index 23b359686f8..111a72772d0 100644 --- a/Mage.Sets/src/mage/cards/p/PoisonbellyOgre.java +++ b/Mage.Sets/src/mage/cards/p/PoisonbellyOgre.java @@ -25,7 +25,7 @@ public final class PoisonbellyOgre extends CardImpl { filter.add(AnotherPredicate.instance); } - private final static String RULE = "Whenever another creature enters the battlefield, its controller loses 1 life."; + private static final String RULE = "Whenever another creature enters the battlefield, its controller loses 1 life."; public PoisonbellyOgre(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}"); diff --git a/Mage.Sets/src/mage/cards/p/Portcullis.java b/Mage.Sets/src/mage/cards/p/Portcullis.java index 5a5f9ae6006..1cddb7e13ed 100644 --- a/Mage.Sets/src/mage/cards/p/Portcullis.java +++ b/Mage.Sets/src/mage/cards/p/Portcullis.java @@ -34,7 +34,7 @@ import mage.util.CardUtil; */ public final class Portcullis extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature"); public Portcullis(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); diff --git a/Mage.Sets/src/mage/cards/p/PrimalForcemage.java b/Mage.Sets/src/mage/cards/p/PrimalForcemage.java index c1e50b811e9..954fd329c83 100644 --- a/Mage.Sets/src/mage/cards/p/PrimalForcemage.java +++ b/Mage.Sets/src/mage/cards/p/PrimalForcemage.java @@ -23,7 +23,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class PrimalForcemage extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/p/PrimalWellspring.java b/Mage.Sets/src/mage/cards/p/PrimalWellspring.java index 892fbbc636e..4c9667d9e02 100644 --- a/Mage.Sets/src/mage/cards/p/PrimalWellspring.java +++ b/Mage.Sets/src/mage/cards/p/PrimalWellspring.java @@ -50,7 +50,7 @@ public final class PrimalWellspring extends CardImpl { class PyrimalWellspringTriggeredAbility extends TriggeredAbilityImpl { - private final static FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); + private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); String abilityOriginalId; diff --git a/Mage.Sets/src/mage/cards/p/ProwlingNightstalker.java b/Mage.Sets/src/mage/cards/p/ProwlingNightstalker.java index 19279f4048c..59e6c5ccc4d 100644 --- a/Mage.Sets/src/mage/cards/p/ProwlingNightstalker.java +++ b/Mage.Sets/src/mage/cards/p/ProwlingNightstalker.java @@ -21,7 +21,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public final class ProwlingNightstalker extends CardImpl { - private final static FilterCreaturePermanent notBlackCreatures = new FilterCreaturePermanent("except by black creatures"); + private static final FilterCreaturePermanent notBlackCreatures = new FilterCreaturePermanent("except by black creatures"); static { notBlackCreatures.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); diff --git a/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java b/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java index b26aed2ddde..f6f2ec08a5d 100644 --- a/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java +++ b/Mage.Sets/src/mage/cards/p/PyromancersGoggles.java @@ -54,7 +54,7 @@ public final class PyromancersGoggles extends CardImpl { class PyromancersGogglesTriggeredAbility extends TriggeredAbilityImpl { - private final static FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); + private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); static { filter.add(new ColorPredicate(ObjectColor.RED)); diff --git a/Mage.Sets/src/mage/cards/r/RadiantDestiny.java b/Mage.Sets/src/mage/cards/r/RadiantDestiny.java index acfbcefe7b9..b0b9bee0316 100644 --- a/Mage.Sets/src/mage/cards/r/RadiantDestiny.java +++ b/Mage.Sets/src/mage/cards/r/RadiantDestiny.java @@ -27,7 +27,7 @@ import static mage.filter.StaticFilters.FILTER_PERMANENT_CREATURES_CONTROLLED; */ public final class RadiantDestiny extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control of the chosen type"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control of the chosen type"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/r/RagingSwordtooth.java b/Mage.Sets/src/mage/cards/r/RagingSwordtooth.java index 5856a612a88..1363ae5ba06 100644 --- a/Mage.Sets/src/mage/cards/r/RagingSwordtooth.java +++ b/Mage.Sets/src/mage/cards/r/RagingSwordtooth.java @@ -19,7 +19,7 @@ import mage.filter.predicate.permanent.AnotherPredicate; */ public final class RagingSwordtooth extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("other creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creature"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/r/RalsDispersal.java b/Mage.Sets/src/mage/cards/r/RalsDispersal.java index 4747d592aa0..224d594843b 100644 --- a/Mage.Sets/src/mage/cards/r/RalsDispersal.java +++ b/Mage.Sets/src/mage/cards/r/RalsDispersal.java @@ -16,7 +16,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class RalsDispersal extends CardImpl { - private final static FilterCard filter = new FilterCard("Ral, Caller of Storms"); + private static final FilterCard filter = new FilterCard("Ral, Caller of Storms"); static { filter.add(new NamePredicate("Ral, Caller of Storms")); diff --git a/Mage.Sets/src/mage/cards/r/RamunapHydra.java b/Mage.Sets/src/mage/cards/r/RamunapHydra.java index 7e74d67d64c..38a86af7688 100644 --- a/Mage.Sets/src/mage/cards/r/RamunapHydra.java +++ b/Mage.Sets/src/mage/cards/r/RamunapHydra.java @@ -68,7 +68,7 @@ public final class RamunapHydra extends CardImpl { class RamunapHydraBoostEffect extends WhileConditionContinuousEffect { - private final static FilterCard filter = new FilterCard("a Desert"); + private static final FilterCard filter = new FilterCard("a Desert"); static { filter.add(new SubtypePredicate(SubType.DESERT)); diff --git a/Mage.Sets/src/mage/cards/r/RebuffTheWicked.java b/Mage.Sets/src/mage/cards/r/RebuffTheWicked.java index d5ecd01df48..e60d29822b0 100644 --- a/Mage.Sets/src/mage/cards/r/RebuffTheWicked.java +++ b/Mage.Sets/src/mage/cards/r/RebuffTheWicked.java @@ -17,7 +17,7 @@ import mage.target.TargetSpell; */ public final class RebuffTheWicked extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets a permanent you control"); + private static final FilterSpell filter = new FilterSpell("spell that targets a permanent you control"); static { filter.add(new TargetsPermanentPredicate(new FilterControlledPermanent())); diff --git a/Mage.Sets/src/mage/cards/r/RecklessBushwhacker.java b/Mage.Sets/src/mage/cards/r/RecklessBushwhacker.java index d19cf75607c..c35a7128698 100644 --- a/Mage.Sets/src/mage/cards/r/RecklessBushwhacker.java +++ b/Mage.Sets/src/mage/cards/r/RecklessBushwhacker.java @@ -24,7 +24,7 @@ import mage.filter.predicate.permanent.AnotherPredicate; */ public final class RecklessBushwhacker extends CardImpl { - private final static FilterControlledCreaturePermanent FILTER = new FilterControlledCreaturePermanent("other creatures you control"); + private static final FilterControlledCreaturePermanent FILTER = new FilterControlledCreaturePermanent("other creatures you control"); static { FILTER.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/r/RecklessCohort.java b/Mage.Sets/src/mage/cards/r/RecklessCohort.java index 4962f5b3ce8..a4f00f9e922 100644 --- a/Mage.Sets/src/mage/cards/r/RecklessCohort.java +++ b/Mage.Sets/src/mage/cards/r/RecklessCohort.java @@ -21,7 +21,7 @@ import mage.filter.predicate.permanent.AnotherPredicate; */ public final class RecklessCohort extends CardImpl { - private final static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Ally"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Ally"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/r/ReflectorMage.java b/Mage.Sets/src/mage/cards/r/ReflectorMage.java index a7a087b19e2..51ebede343e 100644 --- a/Mage.Sets/src/mage/cards/r/ReflectorMage.java +++ b/Mage.Sets/src/mage/cards/r/ReflectorMage.java @@ -27,7 +27,7 @@ import java.util.UUID; */ public final class ReflectorMage extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/r/RemorselessPunishment.java b/Mage.Sets/src/mage/cards/r/RemorselessPunishment.java index 3bfd103007b..56387c62954 100644 --- a/Mage.Sets/src/mage/cards/r/RemorselessPunishment.java +++ b/Mage.Sets/src/mage/cards/r/RemorselessPunishment.java @@ -43,7 +43,7 @@ public final class RemorselessPunishment extends CardImpl { class RemorselessPunishmentEffect extends OneShotEffect { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("creature or planeswalker"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("creature or planeswalker"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.PLANESWALKER))); diff --git a/Mage.Sets/src/mage/cards/r/RhythmicWaterVortex.java b/Mage.Sets/src/mage/cards/r/RhythmicWaterVortex.java index 01f4b225acf..412162b3f40 100644 --- a/Mage.Sets/src/mage/cards/r/RhythmicWaterVortex.java +++ b/Mage.Sets/src/mage/cards/r/RhythmicWaterVortex.java @@ -16,7 +16,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class RhythmicWaterVortex extends CardImpl { - private final static FilterCard filter = new FilterCard("Mu Yanling"); + private static final FilterCard filter = new FilterCard("Mu Yanling"); static { filter.add(new NamePredicate("Mu Yanling")); diff --git a/Mage.Sets/src/mage/cards/r/RingOfImmortals.java b/Mage.Sets/src/mage/cards/r/RingOfImmortals.java index 3d61da68c22..bca0f2387d0 100644 --- a/Mage.Sets/src/mage/cards/r/RingOfImmortals.java +++ b/Mage.Sets/src/mage/cards/r/RingOfImmortals.java @@ -26,7 +26,7 @@ import mage.target.TargetSpell; */ public final class RingOfImmortals extends CardImpl { - private final static FilterSpell filter = new FilterSpell("instant or Aura spell that targets a permanent you control"); + private static final FilterSpell filter = new FilterSpell("instant or Aura spell that targets a permanent you control"); static { filter.add(Predicates.or(new CardTypePredicate(CardType.INSTANT), new SubtypePredicate(SubType.AURA))); diff --git a/Mage.Sets/src/mage/cards/r/RiptideLaboratory.java b/Mage.Sets/src/mage/cards/r/RiptideLaboratory.java index dc0eeae9843..049835c8ed8 100644 --- a/Mage.Sets/src/mage/cards/r/RiptideLaboratory.java +++ b/Mage.Sets/src/mage/cards/r/RiptideLaboratory.java @@ -23,7 +23,7 @@ import mage.target.common.TargetControlledPermanent; */ public final class RiptideLaboratory extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("Wizard you control"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("Wizard you control"); static { filter.add(new SubtypePredicate(SubType.WIZARD)); diff --git a/Mage.Sets/src/mage/cards/r/RoilingWaters.java b/Mage.Sets/src/mage/cards/r/RoilingWaters.java index e0ba7dd30b9..a6d1d69d836 100644 --- a/Mage.Sets/src/mage/cards/r/RoilingWaters.java +++ b/Mage.Sets/src/mage/cards/r/RoilingWaters.java @@ -21,7 +21,7 @@ import mage.target.targetpointer.SecondTargetPointer; */ public final class RoilingWaters extends CardImpl { - private final static FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creatures your opponents control"); + private static final FilterCreaturePermanent FILTER = new FilterCreaturePermanent("creatures your opponents control"); static { FILTER.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/r/RoilmagesTrick.java b/Mage.Sets/src/mage/cards/r/RoilmagesTrick.java index b4af39f406a..496d1bd6a7b 100644 --- a/Mage.Sets/src/mage/cards/r/RoilmagesTrick.java +++ b/Mage.Sets/src/mage/cards/r/RoilmagesTrick.java @@ -22,7 +22,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class RoilmagesTrick extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures your opponents control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures your opponents control"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/r/RootsOfLife.java b/Mage.Sets/src/mage/cards/r/RootsOfLife.java index 419f1d62352..c3f2cba6d69 100644 --- a/Mage.Sets/src/mage/cards/r/RootsOfLife.java +++ b/Mage.Sets/src/mage/cards/r/RootsOfLife.java @@ -22,8 +22,8 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class RootsOfLife extends CardImpl { - private final static String ruleTrigger1 = "&bull Island — Whenever an Island an opponent controls becomes tapped, you gain 1 life"; - private final static String ruleTrigger2 = "&bull Swamp — Whenever a Swamp an opponent controls becomes tapped, you gain 1 life"; + private static final String ruleTrigger1 = "&bull Island — Whenever an Island an opponent controls becomes tapped, you gain 1 life"; + private static final String ruleTrigger2 = "&bull Swamp — Whenever a Swamp an opponent controls becomes tapped, you gain 1 life"; private static final FilterPermanent islandFilter = new FilterPermanent("an Island an opponent controls"); private static final FilterPermanent swampFilter = new FilterPermanent("a Swamp an opponent controls"); diff --git a/Mage.Sets/src/mage/cards/r/RotShambler.java b/Mage.Sets/src/mage/cards/r/RotShambler.java index 8358cd49b08..1230e092c33 100644 --- a/Mage.Sets/src/mage/cards/r/RotShambler.java +++ b/Mage.Sets/src/mage/cards/r/RotShambler.java @@ -21,7 +21,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class RotShambler extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/r/RuinInTheirWake.java b/Mage.Sets/src/mage/cards/r/RuinInTheirWake.java index 0d574c796ae..a4e9705c67f 100644 --- a/Mage.Sets/src/mage/cards/r/RuinInTheirWake.java +++ b/Mage.Sets/src/mage/cards/r/RuinInTheirWake.java @@ -45,7 +45,7 @@ public final class RuinInTheirWake extends CardImpl { class RuinInTheirWakeEffect extends OneShotEffect { - private final static FilterLandPermanent filterWastes = new FilterLandPermanent(); + private static final FilterLandPermanent filterWastes = new FilterLandPermanent(); static { filterWastes.add(new NamePredicate("Wastes")); diff --git a/Mage.Sets/src/mage/cards/r/RuinsOfOranRief.java b/Mage.Sets/src/mage/cards/r/RuinsOfOranRief.java index b43ee672514..47d2869fdc0 100644 --- a/Mage.Sets/src/mage/cards/r/RuinsOfOranRief.java +++ b/Mage.Sets/src/mage/cards/r/RuinsOfOranRief.java @@ -24,7 +24,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class RuinsOfOranRief extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("colorless creature that entered the battlefield this turn"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("colorless creature that entered the battlefield this turn"); static { filter.add(ColorlessPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/r/Rust.java b/Mage.Sets/src/mage/cards/r/Rust.java index 1e88687beb4..9557ecb1edd 100644 --- a/Mage.Sets/src/mage/cards/r/Rust.java +++ b/Mage.Sets/src/mage/cards/r/Rust.java @@ -17,7 +17,7 @@ import mage.target.common.TargetActivatedAbility; */ public final class Rust extends CardImpl { - private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source"); + private static final FilterStackObject filter = new FilterStackObject("activated ability from an artifact source"); static { filter.add(new ArtifactSourcePredicate()); diff --git a/Mage.Sets/src/mage/cards/r/RuthlessRipper.java b/Mage.Sets/src/mage/cards/r/RuthlessRipper.java index d58fb8cc922..936b2a7f521 100644 --- a/Mage.Sets/src/mage/cards/r/RuthlessRipper.java +++ b/Mage.Sets/src/mage/cards/r/RuthlessRipper.java @@ -26,7 +26,7 @@ import mage.target.common.TargetCardInHand; */ public final class RuthlessRipper extends CardImpl { - private final static FilterCard filter = new FilterCard("a black card in your hand"); + private static final FilterCard filter = new FilterCard("a black card in your hand"); static { filter.add(new ColorPredicate(ObjectColor.BLACK)); } diff --git a/Mage.Sets/src/mage/cards/s/SaddlebackLagac.java b/Mage.Sets/src/mage/cards/s/SaddlebackLagac.java index 70c1b8ab3e2..715fe21771d 100644 --- a/Mage.Sets/src/mage/cards/s/SaddlebackLagac.java +++ b/Mage.Sets/src/mage/cards/s/SaddlebackLagac.java @@ -20,7 +20,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class SaddlebackLagac extends CardImpl { - private final static FilterCreaturePermanent FILTER = new FilterCreaturePermanent("target creatures"); + private static final FilterCreaturePermanent FILTER = new FilterCreaturePermanent("target creatures"); static { FILTER.add(AnotherPredicate.instance); @@ -39,7 +39,7 @@ public final class SaddlebackLagac extends CardImpl { } - public SaddlebackLagac(final SaddlebackLagac card) { + private SaddlebackLagac(final SaddlebackLagac card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/s/SaiTok.java b/Mage.Sets/src/mage/cards/s/SaiTok.java index 04d1f9daa49..2fea4bab8d8 100644 --- a/Mage.Sets/src/mage/cards/s/SaiTok.java +++ b/Mage.Sets/src/mage/cards/s/SaiTok.java @@ -11,7 +11,6 @@ import mage.filter.FilterPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.TargetPermanent; -import mage.target.common.TargetCreatureOrPlaneswalker; /** * @@ -36,7 +35,7 @@ public final class SaiTok extends CardImpl { this.getSpellAbility().addTarget(new TargetPermanent(filter)); } - public SaiTok(final SaiTok card) { + private SaiTok(final SaiTok card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/s/Sailmonger.java b/Mage.Sets/src/mage/cards/s/Sailmonger.java index 738b1ecf8a7..ec6d781bac8 100644 --- a/Mage.Sets/src/mage/cards/s/Sailmonger.java +++ b/Mage.Sets/src/mage/cards/s/Sailmonger.java @@ -3,7 +3,6 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; -import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.InfoEffect; diff --git a/Mage.Sets/src/mage/cards/s/Saltblast.java b/Mage.Sets/src/mage/cards/s/Saltblast.java index 66945dea2fa..a17a04cf6b9 100644 --- a/Mage.Sets/src/mage/cards/s/Saltblast.java +++ b/Mage.Sets/src/mage/cards/s/Saltblast.java @@ -1,7 +1,6 @@ package mage.cards.s; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -12,18 +11,21 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.ColorPredicate; import mage.target.TargetPermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class Saltblast extends CardImpl { - static final protected FilterPermanent filter = new FilterPermanent("nonwhite permanent"); + private static final FilterPermanent filter = new FilterPermanent("nonwhite permanent"); + static { filter.add(Predicates.not(new ColorPredicate(ObjectColor.WHITE))); } + public Saltblast(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}{W}"); // Destroy target nonwhite permanent. diff --git a/Mage.Sets/src/mage/cards/s/Scapeshift.java b/Mage.Sets/src/mage/cards/s/Scapeshift.java index 7cf2a9cee6d..473044dfbd2 100644 --- a/Mage.Sets/src/mage/cards/s/Scapeshift.java +++ b/Mage.Sets/src/mage/cards/s/Scapeshift.java @@ -66,8 +66,8 @@ class ScapeshiftEffect extends OneShotEffect { int amount = 0; TargetControlledPermanent sacrificeLand = new TargetControlledPermanent(0, Integer.MAX_VALUE, new FilterControlledLandPermanent("lands you control"), true); if (controller.chooseTarget(Outcome.Sacrifice, sacrificeLand, source, game)) { - for (Object uuid : sacrificeLand.getTargets()) { - Permanent land = game.getPermanent((UUID) uuid); + for (UUID uuid : sacrificeLand.getTargets()) { + Permanent land = game.getPermanent(uuid); if (land != null) { land.sacrifice(source.getSourceId(), game); amount++; diff --git a/Mage.Sets/src/mage/cards/s/ScourgeOfValkas.java b/Mage.Sets/src/mage/cards/s/ScourgeOfValkas.java index 2e3a2d02773..d762ba2de59 100644 --- a/Mage.Sets/src/mage/cards/s/ScourgeOfValkas.java +++ b/Mage.Sets/src/mage/cards/s/ScourgeOfValkas.java @@ -31,7 +31,7 @@ import mage.target.common.TargetAnyTarget; */ public final class ScourgeOfValkas extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("{this} or another Dragon"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("{this} or another Dragon"); static { filter.add(new SubtypePredicate(SubType.DRAGON)); diff --git a/Mage.Sets/src/mage/cards/s/ScreechingSliver.java b/Mage.Sets/src/mage/cards/s/ScreechingSliver.java index afff09d73a9..908ef9eda5e 100644 --- a/Mage.Sets/src/mage/cards/s/ScreechingSliver.java +++ b/Mage.Sets/src/mage/cards/s/ScreechingSliver.java @@ -23,7 +23,7 @@ import mage.target.TargetPlayer; */ public final class ScreechingSliver extends CardImpl { - private static final FilterPermanent filter = new FilterPermanent(SubType.SLIVER, "All Slivers"); + private static final FilterPermanent allSliversFilter = new FilterPermanent(SubType.SLIVER, "All Slivers"); public ScreechingSliver(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}"); @@ -37,7 +37,7 @@ public final class ScreechingSliver extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield, - filter, "All Slivers have \"{T}: Target player puts the top card of their library into their graveyard.\""))); + allSliversFilter, "All Slivers have \"{T}: Target player puts the top card of their library into their graveyard.\""))); } public ScreechingSliver(final ScreechingSliver card) { diff --git a/Mage.Sets/src/mage/cards/s/SealAway.java b/Mage.Sets/src/mage/cards/s/SealAway.java index 4550db53198..9ad8ab7f25a 100644 --- a/Mage.Sets/src/mage/cards/s/SealAway.java +++ b/Mage.Sets/src/mage/cards/s/SealAway.java @@ -24,7 +24,7 @@ import mage.target.TargetPermanent; */ public final class SealAway extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/s/Seedtime.java b/Mage.Sets/src/mage/cards/s/Seedtime.java index 1fe0480be89..efa5e33ce82 100644 --- a/Mage.Sets/src/mage/cards/s/Seedtime.java +++ b/Mage.Sets/src/mage/cards/s/Seedtime.java @@ -22,8 +22,8 @@ import mage.watchers.common.SpellsCastWatcher; */ public final class Seedtime extends CardImpl { - private final static String rule = "Cast this spell only during your turn."; - private final static String rule2 = "Take an extra turn after this one if an opponent cast a blue spell this turn."; + private static final String rule = "Cast this spell only during your turn."; + private static final String rule2 = "Take an extra turn after this one if an opponent cast a blue spell this turn."; public Seedtime(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); diff --git a/Mage.Sets/src/mage/cards/s/SentinelOfThePearlTrident.java b/Mage.Sets/src/mage/cards/s/SentinelOfThePearlTrident.java index 93db168b201..97a6036248a 100644 --- a/Mage.Sets/src/mage/cards/s/SentinelOfThePearlTrident.java +++ b/Mage.Sets/src/mage/cards/s/SentinelOfThePearlTrident.java @@ -30,7 +30,7 @@ import mage.target.targetpointer.FixedTarget; */ public final class SentinelOfThePearlTrident extends CardImpl { - private final static FilterControlledPermanent filter = new FilterControlledPermanent("historic permanent you control"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("historic permanent you control"); static { filter.add(HistoricPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/s/SerraInquisitors.java b/Mage.Sets/src/mage/cards/s/SerraInquisitors.java index dacf3b265cd..afb01197666 100644 --- a/Mage.Sets/src/mage/cards/s/SerraInquisitors.java +++ b/Mage.Sets/src/mage/cards/s/SerraInquisitors.java @@ -20,7 +20,7 @@ import java.util.UUID; */ public final class SerraInquisitors extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("black creatures"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("black creatures"); static { filter.add(new ColorPredicate(ObjectColor.BLACK)); diff --git a/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java b/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java index 8c4af9f18d7..41fc8d67f03 100644 --- a/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java +++ b/Mage.Sets/src/mage/cards/s/SetonKrosanProtector.java @@ -24,7 +24,7 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class SetonKrosanProtector extends CardImpl { - private final static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped Druid you control"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped Druid you control"); static { filter.add(Predicates.not(TappedPredicate.instance)); diff --git a/Mage.Sets/src/mage/cards/s/ShaakHerd.java b/Mage.Sets/src/mage/cards/s/ShaakHerd.java index f4405e96216..96f3933057f 100644 --- a/Mage.Sets/src/mage/cards/s/ShaakHerd.java +++ b/Mage.Sets/src/mage/cards/s/ShaakHerd.java @@ -20,7 +20,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public final class ShaakHerd extends CardImpl { - private final static FilterCard filter = new FilterCard("another target creature card"); + private static final FilterCard filter = new FilterCard("another target creature card"); static { filter.add(new AnotherCardPredicate()); diff --git a/Mage.Sets/src/mage/cards/s/SheerDrop.java b/Mage.Sets/src/mage/cards/s/SheerDrop.java index de325c267f2..2e4abc4c43f 100644 --- a/Mage.Sets/src/mage/cards/s/SheerDrop.java +++ b/Mage.Sets/src/mage/cards/s/SheerDrop.java @@ -17,7 +17,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class SheerDrop extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); static { filter.add(TappedPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/s/ShredsOfSanity.java b/Mage.Sets/src/mage/cards/s/ShredsOfSanity.java index 00536e942ec..172af9fbd32 100644 --- a/Mage.Sets/src/mage/cards/s/ShredsOfSanity.java +++ b/Mage.Sets/src/mage/cards/s/ShredsOfSanity.java @@ -25,8 +25,8 @@ import mage.target.TargetCard; */ public final class ShredsOfSanity extends CardImpl { - private final static FilterCard filterInstant = new FilterCard("an instant card in your graveyard"); - private final static FilterCard filterSorcery = new FilterCard("a sorcery card in your graveyard"); + private static final FilterCard filterInstant = new FilterCard("an instant card in your graveyard"); + private static final FilterCard filterSorcery = new FilterCard("a sorcery card in your graveyard"); static { filterInstant.add(new CardTypePredicate(CardType.INSTANT)); diff --git a/Mage.Sets/src/mage/cards/s/SigardasAid.java b/Mage.Sets/src/mage/cards/s/SigardasAid.java index d2be5aacd4e..8b7a18df427 100644 --- a/Mage.Sets/src/mage/cards/s/SigardasAid.java +++ b/Mage.Sets/src/mage/cards/s/SigardasAid.java @@ -25,7 +25,7 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class SigardasAid extends CardImpl { - private final static FilterArtifactPermanent filter = new FilterArtifactPermanent("an Equipment"); + private static final FilterArtifactPermanent filter = new FilterArtifactPermanent("an Equipment"); private static final FilterCard filterCard = new FilterCard("Aura and Equipment spells"); static { diff --git a/Mage.Sets/src/mage/cards/s/SignalPest.java b/Mage.Sets/src/mage/cards/s/SignalPest.java index ea2b26fdec4..dab7642273c 100644 --- a/Mage.Sets/src/mage/cards/s/SignalPest.java +++ b/Mage.Sets/src/mage/cards/s/SignalPest.java @@ -23,7 +23,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate; */ public final class SignalPest extends CardImpl { - private final static FilterCreaturePermanent notFlyingorReachCreatures = new FilterCreaturePermanent("except by creatures with flying or reach"); + private static final FilterCreaturePermanent notFlyingorReachCreatures = new FilterCreaturePermanent("except by creatures with flying or reach"); static { notFlyingorReachCreatures.add(Predicates.not( diff --git a/Mage.Sets/src/mage/cards/s/SnakePit.java b/Mage.Sets/src/mage/cards/s/SnakePit.java index b2d173c76bd..a7a108f0241 100644 --- a/Mage.Sets/src/mage/cards/s/SnakePit.java +++ b/Mage.Sets/src/mage/cards/s/SnakePit.java @@ -19,7 +19,7 @@ import mage.game.permanent.token.SnakeToken; */ public final class SnakePit extends CardImpl { - private final static FilterSpell filter = new FilterSpell("a blue or black spell"); + private static final FilterSpell filter = new FilterSpell("a blue or black spell"); static { filter.add(Predicates.or(new ColorPredicate(ObjectColor.BLUE), new ColorPredicate(ObjectColor.BLACK))); diff --git a/Mage.Sets/src/mage/cards/s/SomberwaldAlpha.java b/Mage.Sets/src/mage/cards/s/SomberwaldAlpha.java index da9c48a8d0c..00bc7f78f48 100644 --- a/Mage.Sets/src/mage/cards/s/SomberwaldAlpha.java +++ b/Mage.Sets/src/mage/cards/s/SomberwaldAlpha.java @@ -28,7 +28,7 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class SomberwaldAlpha extends CardImpl { - final static private FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control"); + static final private FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/s/SoultetherGolem.java b/Mage.Sets/src/mage/cards/s/SoultetherGolem.java index 73d60c1aab6..3c449c87704 100644 --- a/Mage.Sets/src/mage/cards/s/SoultetherGolem.java +++ b/Mage.Sets/src/mage/cards/s/SoultetherGolem.java @@ -26,7 +26,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class SoultetherGolem extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/s/SpellQueller.java b/Mage.Sets/src/mage/cards/s/SpellQueller.java index c4a1fb4c422..4077e32f870 100644 --- a/Mage.Sets/src/mage/cards/s/SpellQueller.java +++ b/Mage.Sets/src/mage/cards/s/SpellQueller.java @@ -37,7 +37,7 @@ import org.apache.log4j.Logger; */ public final class SpellQueller extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell with converted mana cost 4 or less"); + private static final FilterSpell filter = new FilterSpell("spell with converted mana cost 4 or less"); static { filter.add(new ConvertedManaCostPredicate(ComparisonType.FEWER_THAN, 5)); diff --git a/Mage.Sets/src/mage/cards/s/StasisSnare.java b/Mage.Sets/src/mage/cards/s/StasisSnare.java index 7dac21eb62f..fe7447f46cb 100644 --- a/Mage.Sets/src/mage/cards/s/StasisSnare.java +++ b/Mage.Sets/src/mage/cards/s/StasisSnare.java @@ -22,7 +22,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class StasisSnare extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/s/StensiaInnkeeper.java b/Mage.Sets/src/mage/cards/s/StensiaInnkeeper.java index dd254e1a64a..f6c5033a8ed 100644 --- a/Mage.Sets/src/mage/cards/s/StensiaInnkeeper.java +++ b/Mage.Sets/src/mage/cards/s/StensiaInnkeeper.java @@ -22,7 +22,7 @@ import mage.target.TargetPermanent; */ public final class StensiaInnkeeper extends CardImpl { - private final static FilterLandPermanent filter = new FilterLandPermanent("land an opponent controls"); + private static final FilterLandPermanent filter = new FilterLandPermanent("land an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/s/SubterraneanShambler.java b/Mage.Sets/src/mage/cards/s/SubterraneanShambler.java index 29004308bd3..37166d93da9 100644 --- a/Mage.Sets/src/mage/cards/s/SubterraneanShambler.java +++ b/Mage.Sets/src/mage/cards/s/SubterraneanShambler.java @@ -21,7 +21,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate; */ public final class SubterraneanShambler extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); static { filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); diff --git a/Mage.Sets/src/mage/cards/s/SunBlessedMount.java b/Mage.Sets/src/mage/cards/s/SunBlessedMount.java index 2e94ae4ef0a..0a8b7f4f888 100644 --- a/Mage.Sets/src/mage/cards/s/SunBlessedMount.java +++ b/Mage.Sets/src/mage/cards/s/SunBlessedMount.java @@ -18,7 +18,7 @@ import mage.filter.predicate.mageobject.NamePredicate; */ public final class SunBlessedMount extends CardImpl { - private final static FilterCard filter = new FilterCard("Huatli, Dinosaur Knight"); + private static final FilterCard filter = new FilterCard("Huatli, Dinosaur Knight"); static { filter.add(new NamePredicate("Huatli, Dinosaur Knight")); diff --git a/Mage.Sets/src/mage/cards/s/SuspensionField.java b/Mage.Sets/src/mage/cards/s/SuspensionField.java index e7a8c8e5ce8..77cc6b30afd 100644 --- a/Mage.Sets/src/mage/cards/s/SuspensionField.java +++ b/Mage.Sets/src/mage/cards/s/SuspensionField.java @@ -26,7 +26,7 @@ import mage.util.CardUtil; */ public final class SuspensionField extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 3 or greater"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with toughness 3 or greater"); static { filter.add(new ToughnessPredicate(ComparisonType.MORE_THAN, 2)); diff --git a/Mage.Sets/src/mage/cards/s/SwiftReckoning.java b/Mage.Sets/src/mage/cards/s/SwiftReckoning.java index 3d252b1d339..c0b12aa4844 100644 --- a/Mage.Sets/src/mage/cards/s/SwiftReckoning.java +++ b/Mage.Sets/src/mage/cards/s/SwiftReckoning.java @@ -23,7 +23,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class SwiftReckoning extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("tapped creature"); static { filter.add(TappedPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java b/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java index 1df9e2de403..17039e4b9c5 100644 --- a/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java +++ b/Mage.Sets/src/mage/cards/t/TamiyoFieldResearcher.java @@ -41,7 +41,7 @@ import mage.constants.SuperType; */ public final class TamiyoFieldResearcher extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("nonland permanent"); + private static final FilterPermanent filter = new FilterPermanent("nonland permanent"); static { filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); diff --git a/Mage.Sets/src/mage/cards/t/TawnosUrzasApprentice.java b/Mage.Sets/src/mage/cards/t/TawnosUrzasApprentice.java index e4db5140e72..7d3c450c2b1 100644 --- a/Mage.Sets/src/mage/cards/t/TawnosUrzasApprentice.java +++ b/Mage.Sets/src/mage/cards/t/TawnosUrzasApprentice.java @@ -31,7 +31,7 @@ import mage.target.common.TargetActivatedOrTriggeredAbility; */ public final class TawnosUrzasApprentice extends CardImpl { - private final static FilterStackObject filter = new FilterStackObject("activated or triggered ability you control from an artifact source"); + private static final FilterStackObject filter = new FilterStackObject("activated or triggered ability you control from an artifact source"); static { filter.add(new ArtifactSourcePredicate()); diff --git a/Mage.Sets/src/mage/cards/t/TeferisResponse.java b/Mage.Sets/src/mage/cards/t/TeferisResponse.java index 02d0f25d556..7c9ad386bac 100644 --- a/Mage.Sets/src/mage/cards/t/TeferisResponse.java +++ b/Mage.Sets/src/mage/cards/t/TeferisResponse.java @@ -23,7 +23,7 @@ import mage.target.TargetStackObject; */ public final class TeferisResponse extends CardImpl { - private final static FilterStackObject filter = new FilterStackObject("spell or ability an opponent controls that targets a land you control"); + private static final FilterStackObject filter = new FilterStackObject("spell or ability an opponent controls that targets a land you control"); static { filter.add(new TargetsPermanentPredicate(new FilterControlledLandPermanent())); diff --git a/Mage.Sets/src/mage/cards/t/TelJiladStylus.java b/Mage.Sets/src/mage/cards/t/TelJiladStylus.java index 886fa089ec8..5b252c5b960 100644 --- a/Mage.Sets/src/mage/cards/t/TelJiladStylus.java +++ b/Mage.Sets/src/mage/cards/t/TelJiladStylus.java @@ -22,7 +22,7 @@ import mage.target.TargetPermanent; */ public final class TelJiladStylus extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent(); + private static final FilterPermanent filter = new FilterPermanent(); static { filter.add(new OwnerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/t/TelJiladWolf.java b/Mage.Sets/src/mage/cards/t/TelJiladWolf.java index 77a3482fb52..92ea7f3f7ef 100644 --- a/Mage.Sets/src/mage/cards/t/TelJiladWolf.java +++ b/Mage.Sets/src/mage/cards/t/TelJiladWolf.java @@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.CardTypePredicate; */ public final class TelJiladWolf extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("artifact creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("artifact creature"); static { filter.add(new CardTypePredicate(CardType.ARTIFACT)); diff --git a/Mage.Sets/src/mage/cards/t/TemurBattleRage.java b/Mage.Sets/src/mage/cards/t/TemurBattleRage.java index 1ec9a35e8a8..48b5c1d021a 100644 --- a/Mage.Sets/src/mage/cards/t/TemurBattleRage.java +++ b/Mage.Sets/src/mage/cards/t/TemurBattleRage.java @@ -20,7 +20,7 @@ import java.util.UUID; */ public final class TemurBattleRage extends CardImpl { - private final static String rule = "
Ferocious — That creature also gains trample until end of turn if you control a creature with power 4 or greater"; + private static final String rule = "
Ferocious — That creature also gains trample until end of turn if you control a creature with power 4 or greater"; public TemurBattleRage(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}"); diff --git a/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java b/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java index 41a5b34afd5..4a880fc119b 100644 --- a/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java +++ b/Mage.Sets/src/mage/cards/t/TeysaOrzhovScion.java @@ -32,8 +32,8 @@ import mage.target.common.TargetCreaturePermanent; */ public final class TeysaOrzhovScion extends CardImpl { - private final static FilterControlledCreaturePermanent filterWhite = new FilterControlledCreaturePermanent("three white creatures"); - private final static FilterCreaturePermanent filterBlack = new FilterCreaturePermanent("another black creature you control"); + private static final FilterControlledCreaturePermanent filterWhite = new FilterControlledCreaturePermanent("three white creatures"); + private static final FilterCreaturePermanent filterBlack = new FilterCreaturePermanent("another black creature you control"); static { filterWhite.add(new ColorPredicate(ObjectColor.WHITE)); filterBlack.add(new ColorPredicate(ObjectColor.BLACK)); diff --git a/Mage.Sets/src/mage/cards/t/TezzeretsBetrayal.java b/Mage.Sets/src/mage/cards/t/TezzeretsBetrayal.java index f1fc8b79ff8..01e5a3be62b 100644 --- a/Mage.Sets/src/mage/cards/t/TezzeretsBetrayal.java +++ b/Mage.Sets/src/mage/cards/t/TezzeretsBetrayal.java @@ -17,7 +17,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class TezzeretsBetrayal extends CardImpl { - private final static FilterCard filter = new FilterCard("Tezzeret, Master of Metal"); + private static final FilterCard filter = new FilterCard("Tezzeret, Master of Metal"); static { filter.add(new NamePredicate("Tezzeret, Master of Metal")); diff --git a/Mage.Sets/src/mage/cards/t/ThirstingAxe.java b/Mage.Sets/src/mage/cards/t/ThirstingAxe.java index fe76f099210..169a5151ecf 100644 --- a/Mage.Sets/src/mage/cards/t/ThirstingAxe.java +++ b/Mage.Sets/src/mage/cards/t/ThirstingAxe.java @@ -85,7 +85,7 @@ class CombatDamageToCreatureWatcher extends Watcher { // which objects dealt combat damage to creature during the turn public final Set dealtCombatDamageToCreature; - final static String BASIC_KEY = "CombatDamageToCreatureWatcher"; + static final String BASIC_KEY = "CombatDamageToCreatureWatcher"; public CombatDamageToCreatureWatcher() { super(BASIC_KEY, WatcherScope.GAME); diff --git a/Mage.Sets/src/mage/cards/t/ThopterArrest.java b/Mage.Sets/src/mage/cards/t/ThopterArrest.java index 292158dab19..a5b154d32f5 100644 --- a/Mage.Sets/src/mage/cards/t/ThopterArrest.java +++ b/Mage.Sets/src/mage/cards/t/ThopterArrest.java @@ -23,7 +23,7 @@ import mage.target.TargetPermanent; */ public final class ThopterArrest extends CardImpl { - private final static FilterPermanent filter = new FilterPermanent("artifact or creature"); + private static final FilterPermanent filter = new FilterPermanent("artifact or creature"); static { filter.add(Predicates.or( diff --git a/Mage.Sets/src/mage/cards/t/ThornbowArcher.java b/Mage.Sets/src/mage/cards/t/ThornbowArcher.java index b2ceb7a5ced..6122a804c16 100644 --- a/Mage.Sets/src/mage/cards/t/ThornbowArcher.java +++ b/Mage.Sets/src/mage/cards/t/ThornbowArcher.java @@ -45,7 +45,7 @@ public final class ThornbowArcher extends CardImpl { class ThornbowArcherEffect extends OneShotEffect { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new SubtypePredicate(SubType.ELF)); diff --git a/Mage.Sets/src/mage/cards/t/ThundermawHellkite.java b/Mage.Sets/src/mage/cards/t/ThundermawHellkite.java index dfd5ac5b255..24fdde1e704 100644 --- a/Mage.Sets/src/mage/cards/t/ThundermawHellkite.java +++ b/Mage.Sets/src/mage/cards/t/ThundermawHellkite.java @@ -27,7 +27,7 @@ import mage.game.permanent.Permanent; */ public final class ThundermawHellkite extends CardImpl { - final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with flying your opponents control"); + static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures with flying your opponents control"); static { filter.add(new AbilityPredicate(FlyingAbility.class)); diff --git a/Mage.Sets/src/mage/cards/t/TrapjawTyrant.java b/Mage.Sets/src/mage/cards/t/TrapjawTyrant.java index dbe78a66680..c1ad6180aad 100644 --- a/Mage.Sets/src/mage/cards/t/TrapjawTyrant.java +++ b/Mage.Sets/src/mage/cards/t/TrapjawTyrant.java @@ -24,7 +24,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class TrapjawTyrant extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/t/TreefolkSeedlings.java b/Mage.Sets/src/mage/cards/t/TreefolkSeedlings.java index 46e8aa7f4f8..94bc6cf9f1f 100644 --- a/Mage.Sets/src/mage/cards/t/TreefolkSeedlings.java +++ b/Mage.Sets/src/mage/cards/t/TreefolkSeedlings.java @@ -21,7 +21,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; */ public final class TreefolkSeedlings extends CardImpl { - final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); + static final FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); static { filterLands.add(new SubtypePredicate(SubType.FOREST)); diff --git a/Mage.Sets/src/mage/cards/t/TreetopRangers.java b/Mage.Sets/src/mage/cards/t/TreetopRangers.java index 647b8b99348..63f331dea0d 100644 --- a/Mage.Sets/src/mage/cards/t/TreetopRangers.java +++ b/Mage.Sets/src/mage/cards/t/TreetopRangers.java @@ -22,7 +22,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate; */ public final class TreetopRangers extends CardImpl { - private final static FilterCreaturePermanent onlyFlyingCreatures = new FilterCreaturePermanent("except by creatures with flying"); + private static final FilterCreaturePermanent onlyFlyingCreatures = new FilterCreaturePermanent("except by creatures with flying"); static { onlyFlyingCreatures.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); diff --git a/Mage.Sets/src/mage/cards/t/TreetopScout.java b/Mage.Sets/src/mage/cards/t/TreetopScout.java index ea02bc2b9e1..52068cc52fd 100644 --- a/Mage.Sets/src/mage/cards/t/TreetopScout.java +++ b/Mage.Sets/src/mage/cards/t/TreetopScout.java @@ -22,7 +22,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate; */ public final class TreetopScout extends CardImpl { - private final static FilterCreaturePermanent onlyFlyingCreatures = new FilterCreaturePermanent("except by creatures with flying"); + private static final FilterCreaturePermanent onlyFlyingCreatures = new FilterCreaturePermanent("except by creatures with flying"); static { onlyFlyingCreatures.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); diff --git a/Mage.Sets/src/mage/cards/t/TurnAside.java b/Mage.Sets/src/mage/cards/t/TurnAside.java index 600493961b9..245b76b035e 100644 --- a/Mage.Sets/src/mage/cards/t/TurnAside.java +++ b/Mage.Sets/src/mage/cards/t/TurnAside.java @@ -18,7 +18,7 @@ import mage.target.TargetSpell; */ public final class TurnAside extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets a permanent you control"); + private static final FilterSpell filter = new FilterSpell("spell that targets a permanent you control"); static { filter.add(new TargetsPermanentPredicate(new FilterControlledPermanent())); diff --git a/Mage.Sets/src/mage/cards/u/UlamogsDespoiler.java b/Mage.Sets/src/mage/cards/u/UlamogsDespoiler.java index 2852a710440..8db6e24f69c 100644 --- a/Mage.Sets/src/mage/cards/u/UlamogsDespoiler.java +++ b/Mage.Sets/src/mage/cards/u/UlamogsDespoiler.java @@ -54,7 +54,7 @@ public final class UlamogsDespoiler extends CardImpl { class UlamogsDespoilerEffect extends OneShotEffect { - private final static FilterCard filter = new FilterCard("cards your opponents own from exile"); + private static final FilterCard filter = new FilterCard("cards your opponents own from exile"); static { filter.add(new OwnerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/u/UlamogsNullifier.java b/Mage.Sets/src/mage/cards/u/UlamogsNullifier.java index 730bf0835e3..3490922e624 100644 --- a/Mage.Sets/src/mage/cards/u/UlamogsNullifier.java +++ b/Mage.Sets/src/mage/cards/u/UlamogsNullifier.java @@ -68,7 +68,7 @@ public final class UlamogsNullifier extends CardImpl { class UlamogsNullifierEffect extends OneShotEffect { - private final static FilterCard filter = new FilterCard("cards your opponents own from exile"); + private static final FilterCard filter = new FilterCard("cards your opponents own from exile"); static { filter.add(new OwnerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/u/UnravelingMummy.java b/Mage.Sets/src/mage/cards/u/UnravelingMummy.java index ff8bf52ac88..b995e43ca50 100644 --- a/Mage.Sets/src/mage/cards/u/UnravelingMummy.java +++ b/Mage.Sets/src/mage/cards/u/UnravelingMummy.java @@ -27,7 +27,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class UnravelingMummy extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking Zombie"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking Zombie"); static { filter.add(AttackingPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/u/UnstableShapeshifter.java b/Mage.Sets/src/mage/cards/u/UnstableShapeshifter.java index 7b29054aaaa..d91b45043f2 100644 --- a/Mage.Sets/src/mage/cards/u/UnstableShapeshifter.java +++ b/Mage.Sets/src/mage/cards/u/UnstableShapeshifter.java @@ -27,7 +27,7 @@ import mage.util.functions.EmptyApplyToPermanent; */ public final class UnstableShapeshifter extends CardImpl { - final static FilterCreaturePermanent filterAnotherCreature = new FilterCreaturePermanent("another creature"); + static final FilterCreaturePermanent filterAnotherCreature = new FilterCreaturePermanent("another creature"); static { filterAnotherCreature.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/u/UnstoppableAsh.java b/Mage.Sets/src/mage/cards/u/UnstoppableAsh.java index 6ab5dcab8e7..791a81e9be2 100644 --- a/Mage.Sets/src/mage/cards/u/UnstoppableAsh.java +++ b/Mage.Sets/src/mage/cards/u/UnstoppableAsh.java @@ -25,7 +25,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class UnstoppableAsh extends CardImpl { - final static private FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control"); + static final private FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature you control"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/v/VanquishersBanner.java b/Mage.Sets/src/mage/cards/v/VanquishersBanner.java index 63a8cfd65d3..9c935e622c7 100644 --- a/Mage.Sets/src/mage/cards/v/VanquishersBanner.java +++ b/Mage.Sets/src/mage/cards/v/VanquishersBanner.java @@ -29,7 +29,7 @@ import mage.game.stack.Spell; */ public final class VanquishersBanner extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control of the chosen type"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control of the chosen type"); static { filter.add(new ControllerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/v/VastwoodAnimist.java b/Mage.Sets/src/mage/cards/v/VastwoodAnimist.java index c2de9d7915f..cf9572a5933 100644 --- a/Mage.Sets/src/mage/cards/v/VastwoodAnimist.java +++ b/Mage.Sets/src/mage/cards/v/VastwoodAnimist.java @@ -54,7 +54,7 @@ public final class VastwoodAnimist extends CardImpl { class VastwoodAnimistEffect extends OneShotEffect { - final static FilterControlledPermanent filterAllies = new FilterControlledPermanent("allies you control"); + static final FilterControlledPermanent filterAllies = new FilterControlledPermanent("allies you control"); static { filterAllies.add(new SubtypePredicate(SubType.ALLY)); diff --git a/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java b/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java index 299bbcb1a5e..8e9015bf3fc 100644 --- a/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java +++ b/Mage.Sets/src/mage/cards/v/VelaTheNightClad.java @@ -22,7 +22,7 @@ import mage.filter.predicate.permanent.ControllerPredicate; */ public final class VelaTheNightClad extends CardImpl { - private final static String rule = "Whenever {this} or another creature you control leaves the battlefield, "; + private static final String rule = "Whenever {this} or another creature you control leaves the battlefield, "; private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); static { diff --git a/Mage.Sets/src/mage/cards/v/VerdantCrescendo.java b/Mage.Sets/src/mage/cards/v/VerdantCrescendo.java index 868a1eebd2e..6f4ae19b5d6 100644 --- a/Mage.Sets/src/mage/cards/v/VerdantCrescendo.java +++ b/Mage.Sets/src/mage/cards/v/VerdantCrescendo.java @@ -19,7 +19,7 @@ import java.util.UUID; */ public final class VerdantCrescendo extends CardImpl { - private final static FilterCard filter = new FilterCard("Nissa, Nature's Artisan"); + private static final FilterCard filter = new FilterCard("Nissa, Nature's Artisan"); static { filter.add(new NamePredicate("Nissa, Nature's Artisan")); diff --git a/Mage.Sets/src/mage/cards/v/VeteranBrawlers.java b/Mage.Sets/src/mage/cards/v/VeteranBrawlers.java index bbc3d1eb1f0..5d25ed9625a 100644 --- a/Mage.Sets/src/mage/cards/v/VeteranBrawlers.java +++ b/Mage.Sets/src/mage/cards/v/VeteranBrawlers.java @@ -31,7 +31,7 @@ public final class VeteranBrawlers extends CardImpl { filter.add(Predicates.not(TappedPredicate.instance)); } - final static private String rule = "{this} can't block if you control an untapped land"; + static final private String rule = "{this} can't block if you control an untapped land"; public VeteranBrawlers(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); diff --git a/Mage.Sets/src/mage/cards/v/VigilantMartyr.java b/Mage.Sets/src/mage/cards/v/VigilantMartyr.java index e2c4475a47d..91c80f9f9af 100644 --- a/Mage.Sets/src/mage/cards/v/VigilantMartyr.java +++ b/Mage.Sets/src/mage/cards/v/VigilantMartyr.java @@ -28,7 +28,7 @@ import java.util.UUID; */ public final class VigilantMartyr extends CardImpl { - private final static FilterSpell filter = new FilterSpell("spell that targets an enchantment"); + private static final FilterSpell filter = new FilterSpell("spell that targets an enchantment"); static { filter.add(new TargetsPermanentPredicate(StaticFilters.FILTER_ENCHANTMENT_PERMANENT)); diff --git a/Mage.Sets/src/mage/cards/v/VileAggregate.java b/Mage.Sets/src/mage/cards/v/VileAggregate.java index e9bfb82417e..a8313c09f94 100644 --- a/Mage.Sets/src/mage/cards/v/VileAggregate.java +++ b/Mage.Sets/src/mage/cards/v/VileAggregate.java @@ -25,7 +25,7 @@ import mage.filter.predicate.mageobject.ColorlessPredicate; */ public final class VileAggregate extends CardImpl { - private final static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("colorless creatures you control"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("colorless creatures you control"); static { filter.add(ColorlessPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/v/VisageOfBolas.java b/Mage.Sets/src/mage/cards/v/VisageOfBolas.java index 965540ce1e6..cb15e7252ca 100644 --- a/Mage.Sets/src/mage/cards/v/VisageOfBolas.java +++ b/Mage.Sets/src/mage/cards/v/VisageOfBolas.java @@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.NamePredicate; */ public final class VisageOfBolas extends CardImpl { - private final static FilterCard filter = new FilterCard("Nicol Bolas, the Deceiver"); + private static final FilterCard filter = new FilterCard("Nicol Bolas, the Deceiver"); static { filter.add(new NamePredicate("Nicol Bolas, the Deceiver")); diff --git a/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java b/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java index 20c2459b9a2..01dbf3b1bfa 100644 --- a/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java +++ b/Mage.Sets/src/mage/cards/v/VorelOfTheHullClade.java @@ -29,7 +29,7 @@ import mage.target.TargetPermanent; */ public final class VorelOfTheHullClade extends CardImpl { - final static private FilterPermanent filter = new FilterPermanent("artifact, creature, or land"); + static final private FilterPermanent filter = new FilterPermanent("artifact, creature, or land"); static { filter.add(Predicates.or( diff --git a/Mage.Sets/src/mage/cards/v/VraskasScorn.java b/Mage.Sets/src/mage/cards/v/VraskasScorn.java index 1b8b2575372..96871bf15bc 100644 --- a/Mage.Sets/src/mage/cards/v/VraskasScorn.java +++ b/Mage.Sets/src/mage/cards/v/VraskasScorn.java @@ -17,7 +17,7 @@ import mage.target.common.TargetOpponent; */ public final class VraskasScorn extends CardImpl { - private final static FilterCard filter = new FilterCard("Vraska, Scheming Gorgon"); + private static final FilterCard filter = new FilterCard("Vraska, Scheming Gorgon"); static { filter.add(new NamePredicate(filter.getMessage())); diff --git a/Mage.Sets/src/mage/cards/v/VraskasStoneglare.java b/Mage.Sets/src/mage/cards/v/VraskasStoneglare.java index 853236eb458..7c849798bc0 100644 --- a/Mage.Sets/src/mage/cards/v/VraskasStoneglare.java +++ b/Mage.Sets/src/mage/cards/v/VraskasStoneglare.java @@ -21,7 +21,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class VraskasStoneglare extends CardImpl { - private final static FilterCard filter = new FilterCard("Vraska, Regal Gorgon"); + private static final FilterCard filter = new FilterCard("Vraska, Regal Gorgon"); static { filter.add(new NamePredicate("Vraska, Regal Gorgon")); diff --git a/Mage.Sets/src/mage/cards/w/WalkThePlank.java b/Mage.Sets/src/mage/cards/w/WalkThePlank.java index 3981e5f1981..e4a61b8b6c2 100644 --- a/Mage.Sets/src/mage/cards/w/WalkThePlank.java +++ b/Mage.Sets/src/mage/cards/w/WalkThePlank.java @@ -19,7 +19,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class WalkThePlank extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Merfolk creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("non-Merfolk creature"); static { filter.add(new CardTypePredicate(CardType.CREATURE)); diff --git a/Mage.Sets/src/mage/cards/w/WarsToll.java b/Mage.Sets/src/mage/cards/w/WarsToll.java index 3f103a26978..5bff2466a07 100644 --- a/Mage.Sets/src/mage/cards/w/WarsToll.java +++ b/Mage.Sets/src/mage/cards/w/WarsToll.java @@ -25,8 +25,8 @@ import mage.players.Player; */ public final class WarsToll extends CardImpl { - private final static FilterCreaturePermanent filterOpponentCreature = new FilterCreaturePermanent("creature an opponent controls"); - private final static FilterLandPermanent filterOpponentLand = new FilterLandPermanent("an opponent taps a land"); + private static final FilterCreaturePermanent filterOpponentCreature = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterLandPermanent filterOpponentLand = new FilterLandPermanent("an opponent taps a land"); static { filterOpponentCreature.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/w/WatcherOfTheRoost.java b/Mage.Sets/src/mage/cards/w/WatcherOfTheRoost.java index e0a7d80cc2f..8f7cc44265b 100644 --- a/Mage.Sets/src/mage/cards/w/WatcherOfTheRoost.java +++ b/Mage.Sets/src/mage/cards/w/WatcherOfTheRoost.java @@ -24,7 +24,7 @@ import mage.target.common.TargetCardInHand; */ public final class WatcherOfTheRoost extends CardImpl { - private final static FilterCard filter = new FilterCard("a white card in your hand"); + private static final FilterCard filter = new FilterCard("a white card in your hand"); static { filter.add(new ColorPredicate(ObjectColor.WHITE)); } diff --git a/Mage.Sets/src/mage/cards/w/WaxingMoon.java b/Mage.Sets/src/mage/cards/w/WaxingMoon.java index 7663d5fc9e3..f23908c3bf0 100644 --- a/Mage.Sets/src/mage/cards/w/WaxingMoon.java +++ b/Mage.Sets/src/mage/cards/w/WaxingMoon.java @@ -24,7 +24,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class WaxingMoon extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Werewolf you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Werewolf you control"); static { filter.add(new SubtypePredicate(SubType.WEREWOLF)); diff --git a/Mage.Sets/src/mage/cards/w/WeaverOfLightning.java b/Mage.Sets/src/mage/cards/w/WeaverOfLightning.java index 8c5701f97bf..818e4038535 100644 --- a/Mage.Sets/src/mage/cards/w/WeaverOfLightning.java +++ b/Mage.Sets/src/mage/cards/w/WeaverOfLightning.java @@ -23,7 +23,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class WeaverOfLightning extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/w/WildInstincts.java b/Mage.Sets/src/mage/cards/w/WildInstincts.java index cf6c797b696..7f9d7272482 100644 --- a/Mage.Sets/src/mage/cards/w/WildInstincts.java +++ b/Mage.Sets/src/mage/cards/w/WildInstincts.java @@ -21,7 +21,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class WildInstincts extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); static { filter.add(new ControllerPredicate(TargetController.OPPONENT)); diff --git a/Mage.Sets/src/mage/cards/w/WildPair.java b/Mage.Sets/src/mage/cards/w/WildPair.java index 76c38c96793..b832633bcc0 100644 --- a/Mage.Sets/src/mage/cards/w/WildPair.java +++ b/Mage.Sets/src/mage/cards/w/WildPair.java @@ -29,7 +29,7 @@ import mage.watchers.common.CastFromHandWatcher; */ public final class WildPair extends CardImpl { - private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature"); static { filter.add(new OwnerPredicate(TargetController.YOU)); diff --git a/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java b/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java index 6fae1461700..9e7608a8e11 100644 --- a/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java +++ b/Mage.Sets/src/mage/cards/w/WortTheRaidmother.java @@ -54,7 +54,7 @@ public final class WortTheRaidmother extends CardImpl { class WortGainConspireEffect extends ContinuousEffectImpl { - private final static FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); + private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); static { filter.add(Predicates.or(new ColorPredicate(ObjectColor.RED), new ColorPredicate(ObjectColor.GREEN))); diff --git a/Mage.Sets/src/mage/cards/z/ZulaportEnforcer.java b/Mage.Sets/src/mage/cards/z/ZulaportEnforcer.java index ff5d97542b9..4ee33360d7d 100644 --- a/Mage.Sets/src/mage/cards/z/ZulaportEnforcer.java +++ b/Mage.Sets/src/mage/cards/z/ZulaportEnforcer.java @@ -27,7 +27,7 @@ import mage.filter.predicate.mageobject.ColorPredicate; */ public final class ZulaportEnforcer extends LevelerCard { - private final static FilterCreaturePermanent notBlackCreatures = new FilterCreaturePermanent("except by black creatures"); + private static final FilterCreaturePermanent notBlackCreatures = new FilterCreaturePermanent("except by black creatures"); static { notBlackCreatures.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/OfferingTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/OfferingTest.java index a909755a9d9..37c9d12e65c 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/OfferingTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/OfferingTest.java @@ -7,7 +7,7 @@ import org.mage.test.serverside.base.CardTestPlayerBase; public class OfferingTest extends CardTestPlayerBase { - private final static String nezumiPatron = "Patron of the Nezumi"; + private static final String nezumiPatron = "Patron of the Nezumi"; @Test diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java index eba6b674384..a2c8e5f1b23 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/PlayGameTest.java @@ -29,7 +29,7 @@ import java.util.Locale; */ public class PlayGameTest extends MageTestBase { - private final static List colorChoices = new ArrayList<>(Arrays.asList("bu", "bg", "br", "bw", "ug", "ur", "uw", "gr", "gw", "rw", "bur", "buw", "bug", "brg", "brw", "bgw", "wur", "wug", "wrg", "rgu")); + private static final List colorChoices = new ArrayList<>(Arrays.asList("bu", "bg", "br", "bw", "ug", "ur", "uw", "gr", "gw", "rw", "bur", "buw", "bug", "brg", "brw", "bgw", "wur", "wug", "wrg", "rgu")); @Ignore @Test diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/TestPlayRandomGame.java b/Mage.Tests/src/test/java/org/mage/test/serverside/TestPlayRandomGame.java index c36b59a1081..644c9fed18e 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/TestPlayRandomGame.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/TestPlayRandomGame.java @@ -28,7 +28,7 @@ import java.util.Locale; */ public class TestPlayRandomGame extends MageTestBase { - private final static List colorChoices = new ArrayList<>(Arrays.asList("bu", "bg", "br", "bw", "ug", "ur", "uw", "gr", "gw", "rw", "bur", "buw", "bug", "brg", "brw", "bgw", "wur", "wug", "wrg", "rgu")); + private static final List colorChoices = new ArrayList<>(Arrays.asList("bu", "bg", "br", "bw", "ug", "ur", "uw", "gr", "gw", "rw", "bur", "buw", "bug", "brg", "brw", "bgw", "wur", "wug", "wrg", "rgu")); @Test @Ignore diff --git a/Mage/src/main/java/mage/abilities/common/FetchLandActivatedAbility.java b/Mage/src/main/java/mage/abilities/common/FetchLandActivatedAbility.java index 40a620f5e82..fa71efebee9 100644 --- a/Mage/src/main/java/mage/abilities/common/FetchLandActivatedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/FetchLandActivatedAbility.java @@ -22,6 +22,7 @@ import mage.target.common.TargetCardInLibrary; import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * @@ -51,16 +52,12 @@ public class FetchLandActivatedAbility extends ActivatedAbilityImpl { addEffect(new SearchLibraryPutInPlayEffect(target, false, true, Outcome.PutLandInPlay)); } - public FetchLandActivatedAbility(FetchLandActivatedAbility ability) { + private FetchLandActivatedAbility(FetchLandActivatedAbility ability) { super(ability); } private String subTypeNames(Set subTypes) { - StringBuilder sb = new StringBuilder(); - for (SubType subType: subTypes) { - sb.append(subType.getDescription()).append(" or "); - } - return sb.substring(0, sb.length() - 4); + return subTypes.stream().map(SubType::getDescription).collect(Collectors.joining(" or ")); } @Override diff --git a/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldAllTriggeredAbility.java index 8757d62401a..7ce2028a917 100644 --- a/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/LeavesBattlefieldAllTriggeredAbility.java @@ -40,7 +40,7 @@ public class LeavesBattlefieldAllTriggeredAbility extends TriggeredAbilityImpl { this.setTargetPointer = setTargetPointer; } - public LeavesBattlefieldAllTriggeredAbility(final LeavesBattlefieldAllTriggeredAbility ability) { + private LeavesBattlefieldAllTriggeredAbility(final LeavesBattlefieldAllTriggeredAbility ability) { super(ability); filter = ability.filter; setTargetPointer = ability.setTargetPointer; diff --git a/Mage/src/main/java/mage/abilities/costs/mana/ManaSymbols.java b/Mage/src/main/java/mage/abilities/costs/mana/ManaSymbols.java index 42dde43669e..877d21c55bd 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/ManaSymbols.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/ManaSymbols.java @@ -17,7 +17,7 @@ import java.util.Map; */ public class ManaSymbols extends ArrayList { - private final static Map coloredManaMap = new EnumMap(ColoredManaSymbol.class) {{ + private static final Map coloredManaMap = new EnumMap(ColoredManaSymbol.class) {{ put(ColoredManaSymbol.W, ManaSymbol.W); put(ColoredManaSymbol.U, ManaSymbol.U); put(ColoredManaSymbol.B, ManaSymbol.B); @@ -29,7 +29,7 @@ public class ManaSymbols extends ArrayList { * Contains all possible hybrid mana costs (each represents different hybrid mana symbol) * We'll use it for converting from hybrid mana cost to hybrid mana symbol. */ - private final static Map hybridManaMap = new EnumMap(ManaSymbol.class) {{ + private static final Map hybridManaMap = new EnumMap(ManaSymbol.class) {{ /** * Build map of all possible hybrid mana symbols assigning corresponding instance of hybrid mana cost. diff --git a/Mage/src/main/java/mage/abilities/keyword/AdaptAbility.java b/Mage/src/main/java/mage/abilities/keyword/AdaptAbility.java index 634c38bd4df..65d037d8c15 100644 --- a/Mage/src/main/java/mage/abilities/keyword/AdaptAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/AdaptAbility.java @@ -16,7 +16,7 @@ public class AdaptAbility extends ActivatedAbilityImpl { super(Zone.BATTLEFIELD, new AdaptEffect(adaptNumber), new ManaCostsImpl(manaCost)); } - public AdaptAbility(final AdaptAbility ability) { + private AdaptAbility(final AdaptAbility ability) { super(ability); } diff --git a/Mage/src/main/java/mage/abilities/keyword/CascadeAbility.java b/Mage/src/main/java/mage/abilities/keyword/CascadeAbility.java index b803f8e7c4a..3f44a43db90 100644 --- a/Mage/src/main/java/mage/abilities/keyword/CascadeAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/CascadeAbility.java @@ -20,7 +20,7 @@ import mage.players.Player; public class CascadeAbility extends TriggeredAbilityImpl { //20091005 - 702.82 - private final static String REMINDERTEXT = " (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less." + private static final String REMINDERTEXT = " (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less." + " You may cast it without paying its mana cost. Put the exiled cards on the bottom in a random order.)"; private boolean withReminder; diff --git a/Mage/src/main/java/mage/abilities/keyword/HauntAbility.java b/Mage/src/main/java/mage/abilities/keyword/HauntAbility.java index 9e08681fb94..71297bc8930 100644 --- a/Mage/src/main/java/mage/abilities/keyword/HauntAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/HauntAbility.java @@ -110,8 +110,8 @@ public class HauntAbility extends TriggeredAbilityImpl { class HauntExileAbility extends ZoneChangeTriggeredAbility { - private final static String RULE_TEXT_CREATURE = "Haunt (When this creature dies, exile it haunting target creature.)"; - private final static String RULE_TEXT_SPELL = "Haunt (When this spell card is put into a graveyard after resolving, exile it haunting target creature.)"; + private static final String RULE_TEXT_CREATURE = "Haunt (When this creature dies, exile it haunting target creature.)"; + private static final String RULE_TEXT_SPELL = "Haunt (When this spell card is put into a graveyard after resolving, exile it haunting target creature.)"; private boolean creatureHaunt; diff --git a/Mage/src/main/java/mage/abilities/keyword/SoulbondAbility.java b/Mage/src/main/java/mage/abilities/keyword/SoulbondAbility.java index e2b3cba0b4e..db7dc45be6e 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SoulbondAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SoulbondAbility.java @@ -168,7 +168,7 @@ class SoulboundEntersSelfEffect extends OneShotEffect { */ class SoulbondEntersOtherAbility extends EntersBattlefieldAllTriggeredAbility { - private final static FilterCreaturePermanent soulbondFilter = new FilterCreaturePermanent(); + private static final FilterCreaturePermanent soulbondFilter = new FilterCreaturePermanent(); static { soulbondFilter.add(Predicates.not(new PairedPredicate())); diff --git a/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java b/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java index 434b57f96a2..aa03cf95792 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SunburstAbility.java @@ -22,8 +22,8 @@ import mage.players.Player; */ public class SunburstAbility extends EntersBattlefieldAbility { - private final static String ruleCreature = "Sunburst (This enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.)"; - private final static String ruleNonCreature = "Sunburst (This enters the battlefield with a charge counter on it for each color of mana spent to cast it.)"; + private static final String ruleCreature = "Sunburst (This enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.)"; + private static final String ruleNonCreature = "Sunburst (This enters the battlefield with a charge counter on it for each color of mana spent to cast it.)"; private boolean isCreature; public SunburstAbility(Card card) { diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java index bc0bdc90593..688538ae18c 100644 --- a/Mage/src/main/java/mage/cards/ExpansionSet.java +++ b/Mage/src/main/java/mage/cards/ExpansionSet.java @@ -23,8 +23,8 @@ import java.util.stream.Collectors; public abstract class ExpansionSet implements Serializable { private static final Logger logger = Logger.getLogger(ExpansionSet.class); - public final static CardGraphicInfo NON_FULL_USE_VARIOUS = new CardGraphicInfo(null, true); - public final static CardGraphicInfo FULL_ART_BFZ_VARIOUS = new CardGraphicInfo(FrameStyle.BFZ_FULL_ART_BASIC, true); + public static final CardGraphicInfo NON_FULL_USE_VARIOUS = new CardGraphicInfo(null, true); + public static final CardGraphicInfo FULL_ART_BFZ_VARIOUS = new CardGraphicInfo(FrameStyle.BFZ_FULL_ART_BASIC, true); public class SetCardInfo implements Serializable { diff --git a/Mage/src/main/java/mage/game/command/planes/FieldsOfSummerPlane.java b/Mage/src/main/java/mage/game/command/planes/FieldsOfSummerPlane.java index b767e9281b9..f8444d6fc8a 100644 --- a/Mage/src/main/java/mage/game/command/planes/FieldsOfSummerPlane.java +++ b/Mage/src/main/java/mage/game/command/planes/FieldsOfSummerPlane.java @@ -32,7 +32,7 @@ import mage.watchers.common.PlanarRollWatcher; */ public class FieldsOfSummerPlane extends Plane { - private final static FilterSpell filter = new FilterSpell("a spell"); + private static final FilterSpell filter = new FilterSpell("a spell"); public FieldsOfSummerPlane() { this.setName("Plane - Fields of Summer"); diff --git a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java index 04f1ee9fbc3..960758bc3d5 100644 --- a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java @@ -10,7 +10,7 @@ import mage.constants.SubType; public final class AngelToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CFX", "GTC", "ISD", "M14", "ORI", "SOI", "ZEN", "C15", "MM3")); diff --git a/Mage/src/main/java/mage/game/permanent/token/BatToken.java b/Mage/src/main/java/mage/game/permanent/token/BatToken.java index d87677d013b..6e22ffb8ce4 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BatToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BatToken.java @@ -10,7 +10,7 @@ import mage.constants.SubType; public final class BatToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("MMA", "C17")); diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java index 3ab4664bb5b..ed845d62cce 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class BeastToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE", "MM3", "CMA", "E01")); diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java index d65062a55e7..a65f361af96 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class BeastToken2 extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("ZEN", "C14", "DDD", "C15", "DD3GVL", "MM3", "CMA", "E01")); diff --git a/Mage/src/main/java/mage/game/permanent/token/BelzenlokClericToken.java b/Mage/src/main/java/mage/game/permanent/token/BelzenlokClericToken.java index 378dbfc769a..10da78ae2da 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BelzenlokClericToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BelzenlokClericToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class BelzenlokClericToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DOM")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/BelzenlokDemonToken.java b/Mage/src/main/java/mage/game/permanent/token/BelzenlokDemonToken.java index 4f1f815b654..214b4f07d62 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BelzenlokDemonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BelzenlokDemonToken.java @@ -29,7 +29,7 @@ import mage.players.Player; */ public final class BelzenlokDemonToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DOM")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/BrudicladTelchorMyrToken.java b/Mage/src/main/java/mage/game/permanent/token/BrudicladTelchorMyrToken.java index 33de29d06fa..5ac97bf621f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BrudicladTelchorMyrToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BrudicladTelchorMyrToken.java @@ -10,7 +10,7 @@ import mage.constants.SubType; public final class BrudicladTelchorMyrToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C18")); diff --git a/Mage/src/main/java/mage/game/permanent/token/CatToken.java b/Mage/src/main/java/mage/game/permanent/token/CatToken.java index 36dd3f26607..bfc82b39696 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CatToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CatToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class CatToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("SOM", "M13", "M14", "C14", "C15", "C17")); diff --git a/Mage/src/main/java/mage/game/permanent/token/CatWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/CatWarriorToken.java index f6b6dff1eae..63b4f4c6dd6 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CatWarriorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CatWarriorToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class CatWarriorToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("PLC", "C17")); diff --git a/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java b/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java index 593a757c1cb..30c1e3baa1b 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CentaurToken.java @@ -14,7 +14,7 @@ import java.util.List; */ public final class CentaurToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("RTR", "MM3", "RNA")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ChainersTormentNightmareToken.java b/Mage/src/main/java/mage/game/permanent/token/ChainersTormentNightmareToken.java index b7e87b15506..ad357005716 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ChainersTormentNightmareToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ChainersTormentNightmareToken.java @@ -14,7 +14,7 @@ import mage.MageInt; */ public final class ChainersTormentNightmareToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DOM")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java b/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java index c6d7aa94a42..c9948238f5e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java @@ -20,7 +20,7 @@ import java.util.List; */ public final class ClueArtifactToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("SOI", "EDM")); diff --git a/Mage/src/main/java/mage/game/permanent/token/DeathtouchRatToken.java b/Mage/src/main/java/mage/game/permanent/token/DeathtouchRatToken.java index 1bd425c21cd..edbd8a30761 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DeathtouchRatToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DeathtouchRatToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class DeathtouchRatToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C17")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/DokaiWeaverofLifeToken.java b/Mage/src/main/java/mage/game/permanent/token/DokaiWeaverofLifeToken.java index 7cec19c0917..1fdaffe7b72 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DokaiWeaverofLifeToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DokaiWeaverofLifeToken.java @@ -19,7 +19,7 @@ import mage.filter.common.FilterControlledPermanent; */ public final class DokaiWeaverofLifeToken extends TokenImpl { - final static FilterControlledPermanent filterLands = new FilterControlledLandPermanent("lands you control"); + static final FilterControlledPermanent filterLands = new FilterControlledLandPermanent("lands you control"); public DokaiWeaverofLifeToken() { super("Elemental", "X/X green Elemental creature token, where X is the number of lands you control"); diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonToken.java b/Mage/src/main/java/mage/game/permanent/token/DragonToken.java index c190d3bdfb6..0d441de1caa 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonToken.java @@ -16,7 +16,7 @@ import mage.constants.SubType; */ public final class DragonToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DTK", "MMA", "ALA", "MM3", "C17")); diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java b/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java index 77f5516b953..a5436d7f7c0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class DragonToken2 extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("WWK", "10E", "BFZ", "C15", "CN2", "CMA")); diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonTokenGold.java b/Mage/src/main/java/mage/game/permanent/token/DragonTokenGold.java index ca4518c18bd..13d468195d3 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonTokenGold.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonTokenGold.java @@ -16,7 +16,7 @@ import mage.constants.SubType; */ public final class DragonTokenGold extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("UST","H17")); diff --git a/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovToken.java b/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovToken.java index 093abb05617..467f16a0b35 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovToken.java @@ -14,7 +14,7 @@ import mage.MageInt; */ public final class EdgarMarkovToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C17")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java index e6c531d8ed4..95f042f15be 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EldraziHorrorToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class EldraziHorrorToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Collections.singletonList("EMN")); diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java index d6c551d4c28..7b5c526790f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java @@ -20,7 +20,7 @@ import mage.util.RandomUtil; */ public final class EldraziScionToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("BFZ", "OGW")); diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java index e6ebe54a1cb..dbbc9dcbdad 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java @@ -20,7 +20,7 @@ import mage.util.RandomUtil; */ public final class EldraziSpawnToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("ROE", "MM2", "DDP", "C17")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java index 8622dd3dab4..88637b7b67d 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class ElementalShamanToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C15", "DD3JVC", "DD2", "LRW")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java index 0befcb97ec4..5369b5bff61 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalToken.java @@ -16,7 +16,7 @@ import mage.constants.SubType; */ public final class ElementalToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("OGW", "CON", "DIS")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java b/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java index ef74c81e010..3bdeb7a0951 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElephantToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class ElephantToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C14", "CNS", "DDD", "MM2", "WWK", "OGW", "C15", "DD3GVL", "MM3", "CMA")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ElfToken.java b/Mage/src/main/java/mage/game/permanent/token/ElfToken.java index e9957297309..baad518b72d 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElfToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElfToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class ElfToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C14", "SHM", "EVG", "LRW", "ORI")); diff --git a/Mage/src/main/java/mage/game/permanent/token/FaerieRogueToken.java b/Mage/src/main/java/mage/game/permanent/token/FaerieRogueToken.java index 974355b47fc..a5b324e663e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/FaerieRogueToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/FaerieRogueToken.java @@ -17,7 +17,7 @@ import mage.abilities.keyword.FlyingAbility; */ public final class FaerieRogueToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("SHM", "MOR", "MMA", "MM2")); diff --git a/Mage/src/main/java/mage/game/permanent/token/FreyaliseLlanowarsFuryToken.java b/Mage/src/main/java/mage/game/permanent/token/FreyaliseLlanowarsFuryToken.java index 4bf277ec07e..2f2c3b25ed6 100644 --- a/Mage/src/main/java/mage/game/permanent/token/FreyaliseLlanowarsFuryToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/FreyaliseLlanowarsFuryToken.java @@ -16,7 +16,7 @@ import mage.abilities.mana.GreenManaAbility; */ public final class FreyaliseLlanowarsFuryToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C14", "CMA")); diff --git a/Mage/src/main/java/mage/game/permanent/token/GermToken.java b/Mage/src/main/java/mage/game/permanent/token/GermToken.java index aa122e30486..7b8ed218af0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GermToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GermToken.java @@ -13,7 +13,7 @@ import mage.constants.SubType; */ public final class GermToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("NPH", "MBS", "SOM", "EMA", "C16")); diff --git a/Mage/src/main/java/mage/game/permanent/token/GoatToken.java b/Mage/src/main/java/mage/game/permanent/token/GoatToken.java index 7c923be38ab..d2d509018cb 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoatToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoatToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class GoatToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("EVE", "M13", "M14", "C14")); diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java index 19a6571f9d4..70b12ee68ec 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java @@ -14,7 +14,7 @@ import java.util.List; */ public final class GoblinToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("10E", "ALA", "SOM", "M10", "NPH", "M13", "RTR", diff --git a/Mage/src/main/java/mage/game/permanent/token/GoldToken.java b/Mage/src/main/java/mage/game/permanent/token/GoldToken.java index 87db9f0acc4..65f263911bc 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoldToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoldToken.java @@ -17,7 +17,7 @@ import mage.constants.Zone; */ public final class GoldToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("BNG", "C17")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/GolemToken.java b/Mage/src/main/java/mage/game/permanent/token/GolemToken.java index 46945073d01..7f51a49c45b 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GolemToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GolemToken.java @@ -15,7 +15,7 @@ import mage.MageInt; */ public final class GolemToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("MM2", "NPH", "SOM", "MM3")); diff --git a/Mage/src/main/java/mage/game/permanent/token/HuntedCentaurToken.java b/Mage/src/main/java/mage/game/permanent/token/HuntedCentaurToken.java index 66fdb89a163..63fbd6c7930 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HuntedCentaurToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HuntedCentaurToken.java @@ -16,7 +16,7 @@ import mage.abilities.keyword.ProtectionAbility; */ public final class HuntedCentaurToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("RTR", "MM3")); diff --git a/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java b/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java index ccc227663eb..f0751efe801 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class HuntedDragonKnightToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("ORI", "RTR", "C15")); diff --git a/Mage/src/main/java/mage/game/permanent/token/InsectToken.java b/Mage/src/main/java/mage/game/permanent/token/InsectToken.java index 24ccf81e3c0..8b2fa6e4bf0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/InsectToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/InsectToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class InsectToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("M10", "MM2", "SOI")); diff --git a/Mage/src/main/java/mage/game/permanent/token/KalonianTwingroveTreefolkWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/KalonianTwingroveTreefolkWarriorToken.java index 39eae8e0d30..aa9ca684981 100644 --- a/Mage/src/main/java/mage/game/permanent/token/KalonianTwingroveTreefolkWarriorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/KalonianTwingroveTreefolkWarriorToken.java @@ -18,7 +18,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; */ public final class KalonianTwingroveTreefolkWarriorToken extends TokenImpl { - final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); + static final FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); static { filterLands.add(new SubtypePredicate(SubType.FOREST)); diff --git a/Mage/src/main/java/mage/game/permanent/token/KarnConstructToken.java b/Mage/src/main/java/mage/game/permanent/token/KarnConstructToken.java index 7c558f7c31d..faa2d6a54b0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/KarnConstructToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/KarnConstructToken.java @@ -29,7 +29,7 @@ public final class KarnConstructToken extends TokenImpl { filter.add(new CardTypePredicate(CardType.ARTIFACT)); } - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DOM")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/KaroxBladewingDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/KaroxBladewingDragonToken.java index 5f1946ff769..cb6a9896847 100644 --- a/Mage/src/main/java/mage/game/permanent/token/KaroxBladewingDragonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/KaroxBladewingDragonToken.java @@ -15,7 +15,7 @@ import mage.constants.SuperType; */ public final class KaroxBladewingDragonToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DOM")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/KnightToken.java b/Mage/src/main/java/mage/game/permanent/token/KnightToken.java index 3006cb62d63..e69e3735b07 100644 --- a/Mage/src/main/java/mage/game/permanent/token/KnightToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/KnightToken.java @@ -15,7 +15,7 @@ import mage.util.RandomUtil; */ public final class KnightToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("ORI", "RTR", "C15", "CMA", "DOM")); diff --git a/Mage/src/main/java/mage/game/permanent/token/LeafdrakeRoostDrakeToken.java b/Mage/src/main/java/mage/game/permanent/token/LeafdrakeRoostDrakeToken.java index d62053a100c..69cc8040abc 100644 --- a/Mage/src/main/java/mage/game/permanent/token/LeafdrakeRoostDrakeToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/LeafdrakeRoostDrakeToken.java @@ -15,7 +15,7 @@ import mage.abilities.keyword.FlyingAbility; */ public final class LeafdrakeRoostDrakeToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C13", "CMA")); diff --git a/Mage/src/main/java/mage/game/permanent/token/MyrToken.java b/Mage/src/main/java/mage/game/permanent/token/MyrToken.java index f3df80a3d71..9077c7f15c8 100644 --- a/Mage/src/main/java/mage/game/permanent/token/MyrToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/MyrToken.java @@ -10,7 +10,7 @@ import mage.constants.SubType; public final class MyrToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C14", "MM2", "NPH", "SOM")); diff --git a/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java b/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java index ca21913063d..383605fd5c5 100644 --- a/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java @@ -13,7 +13,7 @@ import mage.util.RandomUtil; */ public final class OviyaPashiriSageLifecrafterToken extends TokenImpl { - final static FilterControlledCreaturePermanent filterCreature = new FilterControlledCreaturePermanent("creatures you control"); + static final FilterControlledCreaturePermanent filterCreature = new FilterControlledCreaturePermanent("creatures you control"); public OviyaPashiriSageLifecrafterToken() { this(1); diff --git a/Mage/src/main/java/mage/game/permanent/token/PlantToken.java b/Mage/src/main/java/mage/game/permanent/token/PlantToken.java index a3b6ebe09d7..962b0c657ae 100644 --- a/Mage/src/main/java/mage/game/permanent/token/PlantToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/PlantToken.java @@ -11,7 +11,7 @@ import mage.constants.SubType; public final class PlantToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("WWK", "DDP", "OGW")); diff --git a/Mage/src/main/java/mage/game/permanent/token/PrismToken.java b/Mage/src/main/java/mage/game/permanent/token/PrismToken.java index fc4275add2e..8f0336ee67f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/PrismToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/PrismToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class PrismToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Collections.singletonList("VIS")); diff --git a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java index fb52d5ed7f8..a653c0ddbc2 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java @@ -16,7 +16,7 @@ import mage.util.RandomUtil; */ public final class SaprolingToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList( diff --git a/Mage/src/main/java/mage/game/permanent/token/ServoToken.java b/Mage/src/main/java/mage/game/permanent/token/ServoToken.java index 2a72c0a8051..4afbc898ec6 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ServoToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ServoToken.java @@ -15,7 +15,7 @@ import mage.util.RandomUtil; */ public final class ServoToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Collections.singletonList("KLD")); diff --git a/Mage/src/main/java/mage/game/permanent/token/SnakeToken.java b/Mage/src/main/java/mage/game/permanent/token/SnakeToken.java index 2916047a750..88ccc6b5060 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SnakeToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SnakeToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class SnakeToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("ZEN", "KTK", "MM2", "C15")); diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java index 719e32a1f50..781374b86b9 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java @@ -15,7 +15,7 @@ import mage.util.RandomUtil; */ public final class SoldierToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13", "MM2", "MMA", "RTR", diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java index 8c1ad0188c7..59fe7b1231c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java @@ -16,7 +16,7 @@ import mage.abilities.keyword.HasteAbility; */ public final class SoldierTokenWithHaste extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("GTC", "MM3")); diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java index 84f21504812..f1e69fe3b0d 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java @@ -19,7 +19,7 @@ import mage.constants.SubType; */ public final class SpiderToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("ISD", "EMN", "C15", "SHM")); diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritToken.java index 5a1f7c4dbfd..8264a002eee 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritToken.java @@ -13,7 +13,7 @@ import mage.constants.SubType; */ public final class SpiritToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("CHK", "EMA", "C16")); diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java index b3bc59eeba4..0b46fd648c0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java @@ -14,7 +14,7 @@ import java.util.List; */ public final class SpiritWhiteToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM", diff --git a/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java b/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java index 632b4a07424..9fbee3b13f0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SquirrelToken.java @@ -14,7 +14,7 @@ import mage.constants.SubType; */ public final class SquirrelToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Collections.singletonList("CNS")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java b/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java index e39bc6107c3..d2a6c00ffdb 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java @@ -16,7 +16,7 @@ import mage.util.RandomUtil; */ public final class ThopterColorlessToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("MBS", "ORI", "KLD")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java b/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java index cda4a663418..a417cea7211 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ThrullToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class ThrullToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Collections.singletonList("MM2")); diff --git a/Mage/src/main/java/mage/game/permanent/token/TitaniaProtectorOfArgothElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/TitaniaProtectorOfArgothElementalToken.java index f7a02d4dd3d..38bd95ccd73 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TitaniaProtectorOfArgothElementalToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TitaniaProtectorOfArgothElementalToken.java @@ -15,7 +15,7 @@ import mage.ObjectColor; */ public final class TitaniaProtectorOfArgothElementalToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C14", "CMA")); diff --git a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java index 6325461b403..204dd81471f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java @@ -18,7 +18,7 @@ import java.util.List; */ public final class TreasureToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("XLN", "RNA")); diff --git a/Mage/src/main/java/mage/game/permanent/token/UtvaraHellkiteDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/UtvaraHellkiteDragonToken.java index 4c4672101da..98bedc8bf69 100644 --- a/Mage/src/main/java/mage/game/permanent/token/UtvaraHellkiteDragonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/UtvaraHellkiteDragonToken.java @@ -15,7 +15,7 @@ import mage.abilities.keyword.FlyingAbility; */ public final class UtvaraHellkiteDragonToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C17")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/ValdukElementalToken.java b/Mage/src/main/java/mage/game/permanent/token/ValdukElementalToken.java index 6bf1df172e2..9b10f6d21dc 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ValdukElementalToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ValdukElementalToken.java @@ -16,7 +16,7 @@ import mage.abilities.keyword.TrampleAbility; */ public final class ValdukElementalToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DOM")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/WasitoraCatDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/WasitoraCatDragonToken.java index 0856aece60b..77dc8c07af9 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WasitoraCatDragonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WasitoraCatDragonToken.java @@ -15,7 +15,7 @@ import mage.abilities.keyword.FlyingAbility; */ public final class WasitoraCatDragonToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("C17")); diff --git a/Mage/src/main/java/mage/game/permanent/token/WolfToken.java b/Mage/src/main/java/mage/game/permanent/token/WolfToken.java index 90333794a14..1172fb2a32f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WolfToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WolfToken.java @@ -15,7 +15,7 @@ import mage.constants.SubType; */ public final class WolfToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("BNG", "C14", "CNS", "FNMP", "ISD", "LRW", "M10", "M14", "MM2", "SHM", "SOM", "ZEN", "SOI", "C15", "M15")); diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java b/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java index 63aca026ce2..598e85a5a40 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/WurmToken2.java @@ -16,7 +16,7 @@ import mage.abilities.keyword.TrampleAbility; */ public final class WurmToken2 extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("RTR", "MM3")); diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java b/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java index f30e990cbc8..31425bb2bdb 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java +++ b/Mage/src/main/java/mage/game/permanent/token/WurmToken3.java @@ -15,7 +15,7 @@ import mage.MageInt; */ public final class WurmToken3 extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("AKH")); diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieKnightToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieKnightToken.java index 7869f2ae180..4927f61524c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieKnightToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieKnightToken.java @@ -12,7 +12,7 @@ import mage.constants.SubType; public final class ZombieKnightToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("DOM")); } diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java index 432de3e57c0..dc5d7fad460 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java @@ -14,7 +14,7 @@ import java.util.List; */ public final class ZombieToken extends TokenImpl { - final static private List tokenImageSets = new ArrayList<>(); + static final private List tokenImageSets = new ArrayList<>(); static { tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "C16", "C17", "CNS", diff --git a/Mage/src/main/java/mage/target/common/TargetPermanentOrPlayerWithCounter.java b/Mage/src/main/java/mage/target/common/TargetPermanentOrPlayerWithCounter.java index 5fb97de434a..d6a515991df 100644 --- a/Mage/src/main/java/mage/target/common/TargetPermanentOrPlayerWithCounter.java +++ b/Mage/src/main/java/mage/target/common/TargetPermanentOrPlayerWithCounter.java @@ -17,7 +17,7 @@ import mage.filter.predicate.permanent.CounterPredicate; */ public class TargetPermanentOrPlayerWithCounter extends TargetPermanentOrPlayer { - protected final FilterPermanentOrPlayerWithCounter filter; + protected final FilterPermanentOrPlayerWithCounter targetFilter; public TargetPermanentOrPlayerWithCounter() { this(1, 1); @@ -33,16 +33,16 @@ public class TargetPermanentOrPlayerWithCounter extends TargetPermanentOrPlayer public TargetPermanentOrPlayerWithCounter(int minNumTargets, int maxNumTargets, boolean notTarget) { super(minNumTargets, maxNumTargets, notTarget); - this.filter = new FilterPermanentOrPlayerWithCounter(); + this.targetFilter = new FilterPermanentOrPlayerWithCounter(); this.filterPermanent = new FilterPermanent(); this.filterPermanent.add(new CounterPredicate(null)); - this.targetName = filter.getMessage(); + this.targetName = targetFilter.getMessage(); } public TargetPermanentOrPlayerWithCounter(final TargetPermanentOrPlayerWithCounter target) { super(target); - this.filter = target.filter.copy(); - super.setFilter(this.filter); + this.targetFilter = target.targetFilter.copy(); + super.setFilter(this.targetFilter); } @Override From c45fe5c7013e2e6c7b729826482c8f417f1220ad Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Wed, 20 Feb 2019 10:20:07 +0100 Subject: [PATCH 18/21] rename from battlefield to graveyard event comparing to .isDiesEvent --- Mage.Sets/src/mage/cards/a/AjanisLastStand.java | 3 +-- Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java | 2 +- Mage.Sets/src/mage/cards/b/BoneyardScourge.java | 2 +- Mage.Sets/src/mage/cards/b/BridgeFromBelow.java | 2 +- Mage.Sets/src/mage/cards/c/CryOfTheCarnarium.java | 3 +-- Mage.Sets/src/mage/cards/d/DecayingSoil.java | 2 +- Mage.Sets/src/mage/cards/d/DingusEgg.java | 3 +-- Mage.Sets/src/mage/cards/d/DiregrafCaptain.java | 2 +- Mage.Sets/src/mage/cards/f/FalkenrathNoble.java | 2 +- Mage.Sets/src/mage/cards/g/GracefulReprieve.java | 2 +- Mage.Sets/src/mage/cards/g/GutterGrime.java | 2 +- Mage.Sets/src/mage/cards/m/MagneticMine.java | 3 +-- Mage.Sets/src/mage/cards/m/MolderBeast.java | 3 +-- Mage.Sets/src/mage/cards/n/NecromancersMagemark.java | 2 +- Mage.Sets/src/mage/cards/n/Necroskitter.java | 2 +- Mage.Sets/src/mage/cards/n/NetherTraitor.java | 2 +- Mage.Sets/src/mage/cards/n/NissasChosen.java | 2 +- Mage.Sets/src/mage/cards/o/OtherworldlyOutburst.java | 2 +- Mage.Sets/src/mage/cards/p/PawnOfUlamog.java | 2 +- Mage.Sets/src/mage/cards/p/PiasRevolution.java | 2 +- Mage.Sets/src/mage/cards/r/Reincarnation.java | 2 +- Mage.Sets/src/mage/cards/s/Scrapheap.java | 2 +- Mage.Sets/src/mage/cards/s/SearingBlood.java | 2 +- Mage.Sets/src/mage/cards/s/ShrivelingRot.java | 2 +- Mage.Sets/src/mage/cards/s/Sporogenesis.java | 2 +- Mage.Sets/src/mage/cards/t/TeysaKarlov.java | 3 +-- Mage.Sets/src/mage/cards/t/TheScorpionGod.java | 2 +- Mage.Sets/src/mage/cards/t/TogetherForever.java | 2 +- Mage.Sets/src/mage/cards/t/TouchOfMoonglove.java | 2 +- Mage.Sets/src/mage/cards/v/VillageCannibals.java | 2 +- Mage.Sets/src/mage/cards/v/VirulentWound.java | 2 +- .../mage/abilities/common/DiesCreatureTriggeredAbility.java | 2 +- .../common/DiesThisOrAnotherCreatureTriggeredAbility.java | 2 +- .../common/EntersBattlefieldOrDiesSourceTriggeredAbility.java | 2 +- .../common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java | 3 +-- Mage/src/main/java/mage/abilities/keyword/RecoverAbility.java | 2 +- Mage/src/main/java/mage/watchers/common/GravestormWatcher.java | 2 +- 37 files changed, 37 insertions(+), 44 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AjanisLastStand.java b/Mage.Sets/src/mage/cards/a/AjanisLastStand.java index 8be2b128f18..7e6b59f641b 100644 --- a/Mage.Sets/src/mage/cards/a/AjanisLastStand.java +++ b/Mage.Sets/src/mage/cards/a/AjanisLastStand.java @@ -83,8 +83,7 @@ class AjanisLastStandTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD - && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (zEvent.getTarget().isControlledBy(controllerId) && (zEvent.getTarget().isCreature() || zEvent.getTarget().isPlaneswalker())) { diff --git a/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java b/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java index c2d40f3fb84..8bdca274c75 100644 --- a/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java +++ b/Mage.Sets/src/mage/cards/a/AthreosGodOfPassage.java @@ -144,7 +144,7 @@ class AthreosDiesCreatureTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (zEvent.getTarget() != null && filter.match(zEvent.getTarget(), sourceId, controllerId, game)) { for (Effect effect : this.getEffects()) { effect.setValue("creatureId", event.getTargetId()); diff --git a/Mage.Sets/src/mage/cards/b/BoneyardScourge.java b/Mage.Sets/src/mage/cards/b/BoneyardScourge.java index 4b61d293488..a604ccf7ae1 100644 --- a/Mage.Sets/src/mage/cards/b/BoneyardScourge.java +++ b/Mage.Sets/src/mage/cards/b/BoneyardScourge.java @@ -96,7 +96,7 @@ class DiesWhileInGraveyardTriggeredAbility extends TriggeredAbilityImpl { return false; } } - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (filter.match(zEvent.getTarget(), sourceId, controllerId, game)) { return true; } diff --git a/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java b/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java index 41df9ae8fa4..21da232f164 100644 --- a/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java +++ b/Mage.Sets/src/mage/cards/b/BridgeFromBelow.java @@ -84,7 +84,7 @@ class BridgeFromBelowAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null && filter.match(permanent, sourceId, controllerId, game)) { return true; diff --git a/Mage.Sets/src/mage/cards/c/CryOfTheCarnarium.java b/Mage.Sets/src/mage/cards/c/CryOfTheCarnarium.java index 23ac8658fcb..f8a451c4f22 100644 --- a/Mage.Sets/src/mage/cards/c/CryOfTheCarnarium.java +++ b/Mage.Sets/src/mage/cards/c/CryOfTheCarnarium.java @@ -119,8 +119,7 @@ class CryOfTheCarnariumReplacementEffect extends ReplacementEffectImpl { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; return zEvent.getTarget() != null && zEvent.getTarget().isCreature() - && zEvent.getFromZone() == Zone.BATTLEFIELD - && zEvent.getToZone() == Zone.GRAVEYARD; + && zEvent.isDiesEvent(); } } diff --git a/Mage.Sets/src/mage/cards/d/DecayingSoil.java b/Mage.Sets/src/mage/cards/d/DecayingSoil.java index 8c709b42aa5..0f6f005166e 100644 --- a/Mage.Sets/src/mage/cards/d/DecayingSoil.java +++ b/Mage.Sets/src/mage/cards/d/DecayingSoil.java @@ -99,7 +99,7 @@ class DecayingSoilTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null && filter.match(permanent, this.getSourceId(), this.getControllerId(), game)) { getEffects().get(0).setTargetPointer(new FixedTarget(permanent.getId())); diff --git a/Mage.Sets/src/mage/cards/d/DingusEgg.java b/Mage.Sets/src/mage/cards/d/DingusEgg.java index 80e94000fb0..cb2bed2f3be 100644 --- a/Mage.Sets/src/mage/cards/d/DingusEgg.java +++ b/Mage.Sets/src/mage/cards/d/DingusEgg.java @@ -56,8 +56,7 @@ class DingusEggTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD - && zEvent.getToZone() == Zone.GRAVEYARD + if (zEvent.isDiesEvent() && zEvent.getTarget().isLand()) { if (getTargets().isEmpty()) { UUID targetId = zEvent.getTarget().getControllerId(); diff --git a/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java b/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java index 4d77c40513b..7417c633a44 100644 --- a/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java +++ b/Mage.Sets/src/mage/cards/d/DiregrafCaptain.java @@ -86,7 +86,7 @@ class DiregrafCaptainTriggeredAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { if (!event.getTargetId().equals(this.getSourceId())) { ZoneChangeEvent zEvent = (ZoneChangeEvent)event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent p = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (p != null && p.isControlledBy(this.controllerId) && filter.match(p, game)) { return true; diff --git a/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java b/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java index d68b94cc4df..3491dc52628 100644 --- a/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java +++ b/Mage.Sets/src/mage/cards/f/FalkenrathNoble.java @@ -72,7 +72,7 @@ class FalkenrathNobleTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null) { if (permanent.getId().equals(this.getSourceId())) { diff --git a/Mage.Sets/src/mage/cards/g/GracefulReprieve.java b/Mage.Sets/src/mage/cards/g/GracefulReprieve.java index 8e891fc4dac..99abc60e6bd 100644 --- a/Mage.Sets/src/mage/cards/g/GracefulReprieve.java +++ b/Mage.Sets/src/mage/cards/g/GracefulReprieve.java @@ -93,7 +93,7 @@ class GracefulReprieveDelayedTriggeredAbility extends DelayedTriggeredAbility { public boolean checkTrigger(GameEvent event, Game game) { if (target.refersTo(((ZoneChangeEvent) event).getTarget(), game)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { getEffects().setTargetPointer(new FixedTarget(target.getSourceId())); return true; } diff --git a/Mage.Sets/src/mage/cards/g/GutterGrime.java b/Mage.Sets/src/mage/cards/g/GutterGrime.java index 28fa9508b39..beacf87f741 100644 --- a/Mage.Sets/src/mage/cards/g/GutterGrime.java +++ b/Mage.Sets/src/mage/cards/g/GutterGrime.java @@ -72,7 +72,7 @@ class GutterGrimeTriggeredAbility extends TriggeredAbilityImpl { if (card instanceof Permanent && !(card instanceof PermanentToken)) { Permanent permanent = (Permanent) card; ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD + if (zEvent.isDiesEvent() && permanent.isControlledBy(this.controllerId) && (targetId.equals(this.getSourceId()) || (permanent.isCreature() diff --git a/Mage.Sets/src/mage/cards/m/MagneticMine.java b/Mage.Sets/src/mage/cards/m/MagneticMine.java index 204bf024726..36dad78e355 100644 --- a/Mage.Sets/src/mage/cards/m/MagneticMine.java +++ b/Mage.Sets/src/mage/cards/m/MagneticMine.java @@ -58,8 +58,7 @@ class MagneticMineTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD - && zEvent.getToZone() == Zone.GRAVEYARD + if (zEvent.isDiesEvent() && zEvent.getTarget().isArtifact() && !Objects.equals(zEvent.getTarget().getId(), this.getSourceId())) { this.getTargets().get(0).add(zEvent.getTarget().getControllerId(), game); diff --git a/Mage.Sets/src/mage/cards/m/MolderBeast.java b/Mage.Sets/src/mage/cards/m/MolderBeast.java index 1547e0e79c0..b598f362f2a 100644 --- a/Mage.Sets/src/mage/cards/m/MolderBeast.java +++ b/Mage.Sets/src/mage/cards/m/MolderBeast.java @@ -62,8 +62,7 @@ class MolderBeastTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - return zEvent.getFromZone() == Zone.BATTLEFIELD - && zEvent.getToZone() == Zone.GRAVEYARD + return zEvent.isDiesEvent() && zEvent.getTarget().isArtifact(); } diff --git a/Mage.Sets/src/mage/cards/n/NecromancersMagemark.java b/Mage.Sets/src/mage/cards/n/NecromancersMagemark.java index c80c8ff70a7..1be965cbc83 100644 --- a/Mage.Sets/src/mage/cards/n/NecromancersMagemark.java +++ b/Mage.Sets/src/mage/cards/n/NecromancersMagemark.java @@ -111,7 +111,7 @@ class NecromancersMagemarkEffect extends ReplacementEffectImpl { @Override public boolean applies(GameEvent event, Ability source, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = ((ZoneChangeEvent) event).getTarget(); if (permanent != null && permanent.isControlledBy(source.getControllerId())) { for (UUID attachmentId : permanent.getAttachments()) { diff --git a/Mage.Sets/src/mage/cards/n/Necroskitter.java b/Mage.Sets/src/mage/cards/n/Necroskitter.java index 1cd96428c00..7fcfaea1b95 100644 --- a/Mage.Sets/src/mage/cards/n/Necroskitter.java +++ b/Mage.Sets/src/mage/cards/n/Necroskitter.java @@ -74,7 +74,7 @@ class NecroskitterTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = zEvent.getTarget(); if (permanent != null && permanent.getCounters(game).containsKey(CounterType.M1M1) diff --git a/Mage.Sets/src/mage/cards/n/NetherTraitor.java b/Mage.Sets/src/mage/cards/n/NetherTraitor.java index 269030fc48e..34d6a5fea4a 100644 --- a/Mage.Sets/src/mage/cards/n/NetherTraitor.java +++ b/Mage.Sets/src/mage/cards/n/NetherTraitor.java @@ -79,7 +79,7 @@ class NetherTraitorTriggeredAbility extends TriggeredAbilityImpl { return false; } } - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (zEvent.getTarget() != null && zEvent.getTarget().isOwnedBy(this.getControllerId()) && zEvent.getTarget().isCreature()&& diff --git a/Mage.Sets/src/mage/cards/n/NissasChosen.java b/Mage.Sets/src/mage/cards/n/NissasChosen.java index 464d54f53ef..d29dd45a7ef 100644 --- a/Mage.Sets/src/mage/cards/n/NissasChosen.java +++ b/Mage.Sets/src/mage/cards/n/NissasChosen.java @@ -73,7 +73,7 @@ class NissasChosenEffect extends ReplacementEffectImpl { public boolean applies(GameEvent event, Ability source, Game game) { if (event.getTargetId().equals(source.getSourceId())) { ZoneChangeEvent zEvent = (ZoneChangeEvent)event; - if ( zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD ) { + if ( zEvent.isDiesEvent() ) { return true; } } diff --git a/Mage.Sets/src/mage/cards/o/OtherworldlyOutburst.java b/Mage.Sets/src/mage/cards/o/OtherworldlyOutburst.java index 846dac4694c..526cd50866b 100644 --- a/Mage.Sets/src/mage/cards/o/OtherworldlyOutburst.java +++ b/Mage.Sets/src/mage/cards/o/OtherworldlyOutburst.java @@ -91,7 +91,7 @@ class OtherworldlyOutburstDelayedTriggeredAbility extends DelayedTriggeredAbilit public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(target)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { return true; } } diff --git a/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java b/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java index 7c10dd12713..d9aa4601a38 100644 --- a/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java +++ b/Mage.Sets/src/mage/cards/p/PawnOfUlamog.java @@ -73,7 +73,7 @@ class PawnOfUlamogTriggeredAbility extends TriggeredAbilityImpl { if (card instanceof Permanent && !(card instanceof PermanentToken)) { Permanent permanent = (Permanent) card; ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD + if (zEvent.isDiesEvent() && permanent.isControlledBy(this.controllerId) && (targetId.equals(this.getSourceId()) || (permanent.isCreature() diff --git a/Mage.Sets/src/mage/cards/p/PiasRevolution.java b/Mage.Sets/src/mage/cards/p/PiasRevolution.java index edaea70c981..8580678631c 100644 --- a/Mage.Sets/src/mage/cards/p/PiasRevolution.java +++ b/Mage.Sets/src/mage/cards/p/PiasRevolution.java @@ -118,7 +118,7 @@ class PiasRevolutionTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null && filter.match(permanent, sourceId, controllerId, game)) { for (Effect effect : this.getEffects()) { diff --git a/Mage.Sets/src/mage/cards/r/Reincarnation.java b/Mage.Sets/src/mage/cards/r/Reincarnation.java index a44d5b3b98e..470183dfa44 100644 --- a/Mage.Sets/src/mage/cards/r/Reincarnation.java +++ b/Mage.Sets/src/mage/cards/r/Reincarnation.java @@ -95,7 +95,7 @@ class ReincarnationDelayedTriggeredAbility extends DelayedTriggeredAbility { public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(target)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { return true; } } diff --git a/Mage.Sets/src/mage/cards/s/Scrapheap.java b/Mage.Sets/src/mage/cards/s/Scrapheap.java index b57e7f95e6f..78385f1a2fa 100644 --- a/Mage.Sets/src/mage/cards/s/Scrapheap.java +++ b/Mage.Sets/src/mage/cards/s/Scrapheap.java @@ -62,7 +62,7 @@ class ScrapheapTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null && permanent.isOwnedBy(this.getControllerId())) { if (StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT.match(permanent, sourceId, controllerId, game)) { diff --git a/Mage.Sets/src/mage/cards/s/SearingBlood.java b/Mage.Sets/src/mage/cards/s/SearingBlood.java index e6a483074f2..2adff7cba2c 100644 --- a/Mage.Sets/src/mage/cards/s/SearingBlood.java +++ b/Mage.Sets/src/mage/cards/s/SearingBlood.java @@ -93,7 +93,7 @@ class SearingBloodDelayedTriggeredAbility extends DelayedTriggeredAbility { public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(target)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { return true; } } diff --git a/Mage.Sets/src/mage/cards/s/ShrivelingRot.java b/Mage.Sets/src/mage/cards/s/ShrivelingRot.java index 1457f6c36b2..dfe775bf0e7 100644 --- a/Mage.Sets/src/mage/cards/s/ShrivelingRot.java +++ b/Mage.Sets/src/mage/cards/s/ShrivelingRot.java @@ -111,7 +111,7 @@ class ShrivelingRotLoseLifeTriggeredAbility extends DelayedTriggeredAbility { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (zEvent.getTarget().isCreature()) { Effect effect = this.getEffects().get(0); effect.setTargetPointer(new FixedTarget(event.getTargetId())); diff --git a/Mage.Sets/src/mage/cards/s/Sporogenesis.java b/Mage.Sets/src/mage/cards/s/Sporogenesis.java index 3512d42361e..0d405c66b2a 100644 --- a/Mage.Sets/src/mage/cards/s/Sporogenesis.java +++ b/Mage.Sets/src/mage/cards/s/Sporogenesis.java @@ -90,7 +90,7 @@ class SporogenesisTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = game.getPermanentOrLKIBattlefield(zEvent.getTargetId()); if (permanent != null && permanent.isCreature() diff --git a/Mage.Sets/src/mage/cards/t/TeysaKarlov.java b/Mage.Sets/src/mage/cards/t/TeysaKarlov.java index 5b4c94bf5c8..4563c6a515b 100644 --- a/Mage.Sets/src/mage/cards/t/TeysaKarlov.java +++ b/Mage.Sets/src/mage/cards/t/TeysaKarlov.java @@ -92,8 +92,7 @@ class TeysaKarlovEffect extends ReplacementEffectImpl { && game.getPermanentOrLKIBattlefield(numberOfTriggersEvent.getSourceId()) != null && numberOfTriggersEvent.getSourceEvent() instanceof ZoneChangeEvent) { ZoneChangeEvent zEvent = (ZoneChangeEvent) numberOfTriggersEvent.getSourceEvent(); - return zEvent.getFromZone() == Zone.BATTLEFIELD - && zEvent.getToZone() == Zone.GRAVEYARD + return zEvent.isDiesEvent() && zEvent.getTarget() != null && zEvent.getTarget().isCreature(); } diff --git a/Mage.Sets/src/mage/cards/t/TheScorpionGod.java b/Mage.Sets/src/mage/cards/t/TheScorpionGod.java index b06dc525cb8..b973513f0e4 100644 --- a/Mage.Sets/src/mage/cards/t/TheScorpionGod.java +++ b/Mage.Sets/src/mage/cards/t/TheScorpionGod.java @@ -99,7 +99,7 @@ class TheScorpionGodTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = game.getPermanentOrLKIBattlefield(zEvent.getTargetId()); if (permanent != null && permanent.isCreature() diff --git a/Mage.Sets/src/mage/cards/t/TogetherForever.java b/Mage.Sets/src/mage/cards/t/TogetherForever.java index 97e35cbbe4c..ed2a9aca89c 100644 --- a/Mage.Sets/src/mage/cards/t/TogetherForever.java +++ b/Mage.Sets/src/mage/cards/t/TogetherForever.java @@ -106,7 +106,7 @@ class TogetherForeverDelayedTriggeredAbility extends DelayedTriggeredAbility { public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(target)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { return true; } } diff --git a/Mage.Sets/src/mage/cards/t/TouchOfMoonglove.java b/Mage.Sets/src/mage/cards/t/TouchOfMoonglove.java index 995385da7d9..f7353561b44 100644 --- a/Mage.Sets/src/mage/cards/t/TouchOfMoonglove.java +++ b/Mage.Sets/src/mage/cards/t/TouchOfMoonglove.java @@ -105,7 +105,7 @@ class TouchOfMoongloveDelayedTriggeredAbility extends DelayedTriggeredAbility { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD + if (zEvent.isDiesEvent() && zEvent.getTarget().isCreature()) { boolean damageDealt = false; for (MageObjectReference mor : zEvent.getTarget().getDealtDamageByThisTurn()) { diff --git a/Mage.Sets/src/mage/cards/v/VillageCannibals.java b/Mage.Sets/src/mage/cards/v/VillageCannibals.java index 4e58de77ed9..ea6af443dd0 100644 --- a/Mage.Sets/src/mage/cards/v/VillageCannibals.java +++ b/Mage.Sets/src/mage/cards/v/VillageCannibals.java @@ -67,7 +67,7 @@ class VillageCannibalsTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { Permanent permanent = (Permanent) game.getLastKnownInformation(event.getTargetId(), Zone.BATTLEFIELD); if (permanent != null && permanent.isCreature() && permanent.hasSubtype(SubType.HUMAN, game) && !permanent.getId().equals(this.getSourceId())) { diff --git a/Mage.Sets/src/mage/cards/v/VirulentWound.java b/Mage.Sets/src/mage/cards/v/VirulentWound.java index 8f806109895..da3fa83f05b 100644 --- a/Mage.Sets/src/mage/cards/v/VirulentWound.java +++ b/Mage.Sets/src/mage/cards/v/VirulentWound.java @@ -93,7 +93,7 @@ class VirulentWoundDelayedTriggeredAbility extends DelayedTriggeredAbility { public boolean checkTrigger(GameEvent event, Game game) { if (event.getTargetId().equals(target)) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { return true; } } diff --git a/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java index 987c13eb7f1..a30e474108e 100644 --- a/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DiesCreatureTriggeredAbility.java @@ -68,7 +68,7 @@ public class DiesCreatureTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (filter.match(zEvent.getTarget(), sourceId, controllerId, game) && zEvent.getTarget().isCreature()) { if (setTargetPointer) { for (Effect effect : this.getEffects()) { diff --git a/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureTriggeredAbility.java index 0173c913550..c0d241039de 100644 --- a/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DiesThisOrAnotherCreatureTriggeredAbility.java @@ -66,7 +66,7 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI return false; } - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (zEvent.getTarget() != null) { if (zEvent.getTarget().getId().equals(this.getSourceId())) { return true; diff --git a/Mage/src/main/java/mage/abilities/common/EntersBattlefieldOrDiesSourceTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldOrDiesSourceTriggeredAbility.java index d0db65728b1..1c36a79de9b 100644 --- a/Mage/src/main/java/mage/abilities/common/EntersBattlefieldOrDiesSourceTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/EntersBattlefieldOrDiesSourceTriggeredAbility.java @@ -43,7 +43,7 @@ public class EntersBattlefieldOrDiesSourceTriggeredAbility extends TriggeredAbil } if (event.getType() == EventType.ZONE_CHANGE && event.getTargetId().equals(this.getSourceId())) { ZoneChangeEvent zEvent = (ZoneChangeEvent)event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { return true; } } diff --git a/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java index df73e1f2efa..5b147df11dd 100644 --- a/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/PutIntoGraveFromBattlefieldAllTriggeredAbility.java @@ -48,8 +48,7 @@ public class PutIntoGraveFromBattlefieldAllTriggeredAbility extends TriggeredAbi @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD - && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (filter.match(zEvent.getTarget(), this.getSourceId(), this.getControllerId(), game)) { if (onlyToControllerGraveyard && !this.isControlledBy(game.getOwnerId(zEvent.getTargetId()))) { return false; diff --git a/Mage/src/main/java/mage/abilities/keyword/RecoverAbility.java b/Mage/src/main/java/mage/abilities/keyword/RecoverAbility.java index c6bac07f934..25f309b6b55 100644 --- a/Mage/src/main/java/mage/abilities/keyword/RecoverAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/RecoverAbility.java @@ -48,7 +48,7 @@ public class RecoverAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { if (zEvent.getTarget().isOwnedBy(getControllerId()) && zEvent.getTarget().isCreature() && !zEvent.getTarget().getId().equals(getSourceId())) { diff --git a/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java b/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java index 36a7d6f393b..3f199616568 100644 --- a/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java @@ -31,7 +31,7 @@ public class GravestormWatcher extends Watcher { public void watch(GameEvent event, Game game) { if (event.getType() == EventType.ZONE_CHANGE) { ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + if (zEvent.isDiesEvent()) { gravestormCount++; } } From b7a7a951806c6803b2ad48faa5d9d99210cb1359 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 21 Feb 2019 05:31:30 +0400 Subject: [PATCH 19/21] Fixed infinite chooseTarget on invalid targets while AI plays (#5023); --- .../src/main/java/mage/player/ai/ComputerPlayer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index 7f811078456..df7d6728821 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -1653,7 +1653,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { cardChoices.remove(card); } else { // We don't have any valid target to choose so stop choosing - return target.getTargets().size() < target.getNumberOfTargets(); + return target.getTargets().size() >= target.getNumberOfTargets(); } if (outcome == Outcome.Neutral && target.getTargets().size() > target.getNumberOfTargets() + (target.getMaxNumberOfTargets() - target.getNumberOfTargets()) / 2) { return true; From 4504ad5e6f640027e8796c71e21add169d3b1c17 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Fri, 22 Feb 2019 03:29:01 +0400 Subject: [PATCH 20/21] * Fixed infinite AI choose if there are not enough different targets, e.g. Biomantic Mastery (#5023); --- .../java/mage/player/ai/ComputerPlayer.java | 122 ++++++++---------- .../mage/player/ai/SimulatedPlayerMCTS.java | 10 +- .../org/mage/test/player/RandomPlayer.java | 10 +- 3 files changed, 64 insertions(+), 78 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index df7d6728821..5015fcf7030 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -1,4 +1,3 @@ - package mage.player.ai; import mage.ConditionalMana; @@ -538,12 +537,10 @@ public class ComputerPlayer extends PlayerImpl implements Player { if (targets.isEmpty()) { if (outcome.isGood()) { if (target.canTarget(getId(), abilityControllerId, source, game)) { - target.addTarget(abilityControllerId, source, game); - return true; + return tryAddTarget(target, abilityControllerId, source, game); } } else if (target.canTarget(getId(), randomOpponentId, source, game)) { - target.addTarget(randomOpponentId, source, game); - return true; + return tryAddTarget(target, randomOpponentId, source, game); } } @@ -554,20 +551,17 @@ public class ComputerPlayer extends PlayerImpl implements Player { List alreadyTargeted = target.getTargets(); if (t.canTarget(abilityControllerId, permanent.getId(), source, game)) { if (alreadyTargeted != null && !alreadyTargeted.contains(permanent.getId())) { - target.addTarget(permanent.getId(), source, game); - return true; + return tryAddTarget(target, permanent.getId(), source, game); } } } if (outcome.isGood()) { if (target.canTarget(getId(), abilityControllerId, source, game)) { - target.addTarget(abilityControllerId, source, game); - return true; + return tryAddTarget(target, abilityControllerId, source, game); } } else if (target.canTarget(getId(), randomOpponentId, source, game)) { - target.addTarget(randomOpponentId, source, game); - return true; + return tryAddTarget(target, randomOpponentId, source, game); } //if (!target.isRequired()) @@ -585,12 +579,10 @@ public class ComputerPlayer extends PlayerImpl implements Player { if (targets.isEmpty()) { if (outcome.isGood()) { if (target.canTarget(getId(), abilityControllerId, source, game)) { - target.addTarget(abilityControllerId, source, game); - return true; + return tryAddTarget(target, abilityControllerId, source, game); } } else if (target.canTarget(getId(), randomOpponentId, source, game)) { - target.addTarget(randomOpponentId, source, game); - return true; + return tryAddTarget(target, randomOpponentId, source, game); } } @@ -601,20 +593,17 @@ public class ComputerPlayer extends PlayerImpl implements Player { List alreadyTargeted = target.getTargets(); if (t.canTarget(abilityControllerId, permanent.getId(), source, game)) { if (alreadyTargeted != null && !alreadyTargeted.contains(permanent.getId())) { - target.addTarget(permanent.getId(), source, game); - return true; + tryAddTarget(target, permanent.getId(), source, game); } } } if (outcome.isGood()) { if (target.canTarget(getId(), abilityControllerId, source, game)) { - target.addTarget(abilityControllerId, source, game); - return true; + return tryAddTarget(target, abilityControllerId, source, game); } } else if (target.canTarget(getId(), randomOpponentId, source, game)) { - target.addTarget(randomOpponentId, source, game); - return true; + return tryAddTarget(target, randomOpponentId, source, game); } //if (!target.isRequired()) @@ -632,12 +621,10 @@ public class ComputerPlayer extends PlayerImpl implements Player { if (targets.isEmpty()) { if (outcome.isGood()) { if (target.canTarget(getId(), abilityControllerId, source, game)) { - target.addTarget(abilityControllerId, source, game); - return true; + return tryAddTarget(target, abilityControllerId, source, game); } } else if (target.canTarget(getId(), randomOpponentId, source, game)) { - target.addTarget(randomOpponentId, source, game); - return true; + return tryAddTarget(target, randomOpponentId, source, game); } } @@ -648,8 +635,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { List alreadyTargeted = target.getTargets(); if (t.canTarget(abilityControllerId, permanent.getId(), source, game)) { if (alreadyTargeted != null && !alreadyTargeted.contains(permanent.getId())) { - target.addTarget(permanent.getId(), source, game); - return true; + return tryAddTarget(target, permanent.getId(), source, game); } } } @@ -667,12 +653,10 @@ public class ComputerPlayer extends PlayerImpl implements Player { if (targets.isEmpty()) { if (outcome.isGood()) { if (target.canTarget(getId(), abilityControllerId, source, game)) { - target.addTarget(abilityControllerId, source, game); - return true; + return tryAddTarget(target, abilityControllerId, source, game); } } else if (target.canTarget(getId(), randomOpponentId, source, game)) { - target.addTarget(randomOpponentId, source, game); - return true; + return tryAddTarget(target, randomOpponentId, source, game); } } @@ -683,20 +667,17 @@ public class ComputerPlayer extends PlayerImpl implements Player { List alreadyTargeted = target.getTargets(); if (t.canTarget(abilityControllerId, permanent.getId(), source, game)) { if (alreadyTargeted != null && !alreadyTargeted.contains(permanent.getId())) { - target.addTarget(permanent.getId(), source, game); - return true; + return tryAddTarget(target, permanent.getId(), source, game); } } } if (outcome.isGood()) { if (target.canTarget(getId(), abilityControllerId, source, game)) { - target.addTarget(abilityControllerId, source, game); - return true; + return tryAddTarget(target, abilityControllerId, source, game); } } else if (target.canTarget(getId(), randomOpponentId, source, game)) { - target.addTarget(randomOpponentId, source, game); - return true; + return tryAddTarget(target, randomOpponentId, source, game); } //if (!target.isRequired()) @@ -710,8 +691,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { } Card card = pickTarget(cards, outcome, target, source, game); if (card != null) { - target.addTarget(card.getId(), source, game); - return true; + return tryAddTarget(target, card.getId(), source, game); } //if (!target.isRequired()) return false; @@ -720,8 +700,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { List cards = new ArrayList<>(game.getPlayer(abilityControllerId).getLibrary().getCards(game)); Card card = pickTarget(cards, outcome, target, source, game); if (card != null) { - target.addTarget(card.getId(), source, game); - return true; + return tryAddTarget(target, card.getId(), source, game); } return false; } @@ -731,6 +710,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { Card card = pickTarget(cards, outcome, target, source, game); if (card != null) { target.addTarget(card.getId(), source, game); + cards.remove(card); // pickTarget don't remove cards (only on second+ tries) } } return target.isChosen(); @@ -739,8 +719,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { if (!game.getStack().isEmpty()) { for (StackObject o : game.getStack()) { if (o instanceof Spell && !source.getId().equals(o.getStackAbility().getId())) { - target.addTarget(o.getId(), source, game); - return true; + return tryAddTarget(target, o.getId(), source, game); } } } @@ -772,8 +751,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { for (StackObject stackObject : game.getStack()) { if (stackObject instanceof Spell && source != null && !source.getId().equals(stackObject.getStackAbility().getId())) { if (((TargetSpellOrPermanent) target).getFilter().match(stackObject, game)) { - target.addTarget(stackObject.getId(), source, game); - return true; + return tryAddTarget(target, stackObject.getId(), source, game); } } } @@ -790,8 +768,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { } Card card = pickTarget(cards, outcome, target, source, game); if (card != null) { - target.addTarget(card.getId(), source, game); - return true; + return tryAddTarget(target, card.getId(), source, game); } //if (!target.isRequired()) return false; @@ -827,6 +804,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { Card pick = pickTarget(cards, outcome, target, source, game); if (pick != null) { target.addTarget(pick.getId(), source, game); + cards.remove(pick); // pickTarget don't remove cards (only on second+ tries) } } return target.isChosen(); @@ -844,6 +822,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { Card pick = pickTarget(cards, outcome, target, source, game); if (pick != null) { target.addTarget(pick.getId(), source, game); + cards.remove(pick); // pickTarget don't remove cards (only on second+ tries) } } return target.isChosen(); @@ -874,8 +853,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { } Card card = pickTarget(cards, outcome, target, source, game); if (card != null) { - target.addTarget(card.getId(), source, game); - return true; + return tryAddTarget(target, card.getId(), source, game); } } @@ -914,8 +892,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { if (target.getOriginalTarget() instanceof TargetCreatureOrPlayerAmount || target.getOriginalTarget() instanceof TargetAnyTargetAmount) { if (outcome == Outcome.Damage && game.getPlayer(opponentId).getLife() <= target.getAmountRemaining()) { - target.addTarget(opponentId, target.getAmountRemaining(), source, game); - return true; + return tryAddTarget(target, opponentId, target.getAmountRemaining(), source, game); } List targets; if (outcome.isGood()) { @@ -926,21 +903,17 @@ public class ComputerPlayer extends PlayerImpl implements Player { for (Permanent permanent : targets) { if (target.canTarget(getId(), permanent.getId(), source, game)) { if (permanent.getToughness().getValue() <= target.getAmountRemaining()) { - target.addTarget(permanent.getId(), permanent.getToughness().getValue(), source, game); - return true; + return tryAddTarget(target, permanent.getId(), permanent.getToughness().getValue(), source, game); } } } if (outcome.isGood() && target.canTarget(getId(), getId(), source, game)) { - target.addTarget(opponentId, target.getAmountRemaining(), source, game); - return true; + return tryAddTarget(target, opponentId, target.getAmountRemaining(), source, game); } else if (target.canTarget(getId(), opponentId, source, game)) { // no permanent target so take opponent - target.addTarget(opponentId, target.getAmountRemaining(), source, game); - return true; + return tryAddTarget(target, opponentId, target.getAmountRemaining(), source, game); } else if (target.canTarget(getId(), playerId, source, game)) { - target.addTarget(opponentId, target.getAmountRemaining(), source, game); - return true; + return tryAddTarget(target, opponentId, target.getAmountRemaining(), source, game); } return false; } @@ -954,8 +927,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { for (Permanent permanent : targets) { if (target.canTarget(getId(), permanent.getId(), source, game)) { if (permanent.getToughness().getValue() <= target.getAmountRemaining()) { - target.addTarget(permanent.getId(), permanent.getToughness().getValue(), source, game); - return true; + return tryAddTarget(target, permanent.getId(), permanent.getToughness().getValue(), source, game); } } } @@ -966,16 +938,14 @@ public class ComputerPlayer extends PlayerImpl implements Player { if (target.canTarget(getId(), permanent.getId(), source, game)) { if (permanent.isCreature()) { if (permanent.getToughness().getValue() <= target.getAmountRemaining()) { - target.addTarget(permanent.getId(), permanent.getToughness().getValue(), source, game); - return true; + tryAddTarget(target, permanent.getId(), permanent.getToughness().getValue(), source, game); } else { possibleTarget = permanent; } } else if (permanent.isPlaneswalker()) { int loy = permanent.getCounters(game).getCount(CounterType.LOYALTY); if (loy <= target.getAmountRemaining()) { - target.addTarget(permanent.getId(), loy, source, game); - return true; + return tryAddTarget(target, permanent.getId(), loy, source, game); } else { possibleTarget = permanent; } @@ -984,8 +954,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { } } if (possibleTarget != null) { - target.addTarget(possibleTarget.getId(), target.getAmountRemaining(), source, game); - return true; + return tryAddTarget(target, possibleTarget.getId(), target.getAmountRemaining(), source, game); } } } @@ -1677,7 +1646,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { cardChoices.remove(card); } else { // We don't have any valid target to choose so stop choosing - break; + return target.getTargets().size() >= target.getNumberOfTargets(); } if (outcome == Outcome.Neutral && target.getTargets().size() > target.getNumberOfTargets() + (target.getMaxNumberOfTargets() - target.getNumberOfTargets()) / 2) { return true; @@ -2438,6 +2407,23 @@ public class ComputerPlayer extends PlayerImpl implements Player { return new ComputerPlayer(this); } + private boolean tryAddTarget(Target target, UUID id, Ability source, Game game) { + // workaround to to check successfull targets add + int before = target.getTargets().size(); + target.addTarget(id, source, game); + int after = target.getTargets().size(); + return before != after; + } + + private boolean tryAddTarget(Target target, UUID id, int amount, Ability source, Game game) { + // workaround to to check successfull targets add + int before = target.getTargets().size(); + target.addTarget(id, amount, source, game); + int after = target.getTargets().size(); + return before != after; + } + + /** * Sets a possible target player */ diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java index 50e33f233ca..37de07485a3 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java +++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/SimulatedPlayerMCTS.java @@ -234,7 +234,7 @@ public class SimulatedPlayerMCTS extends MCTSPlayer { } } if (possibleTargets.size() == 1) { - target.addTarget(possibleTargets.iterator().next(), source, game); + target.addTarget(possibleTargets.iterator().next(), source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } Iterator it = possibleTargets.iterator(); @@ -243,7 +243,7 @@ public class SimulatedPlayerMCTS extends MCTSPlayer { for (int i = 0; i < targetNum; i++) { targetId = it.next(); } - target.addTarget(targetId, source, game); + target.addTarget(targetId, source, game);// todo: addtryaddtarget or return type (see computerPlayer) return true; } @@ -297,7 +297,7 @@ public class SimulatedPlayerMCTS extends MCTSPlayer { } Card card = cards.getRandom(game); if (card != null) { - target.addTarget(card.getId(), source, game); + target.addTarget(card.getId(), source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } return false; @@ -315,7 +315,7 @@ public class SimulatedPlayerMCTS extends MCTSPlayer { } } if (possibleTargets.size() == 1) { - target.addTarget(possibleTargets.iterator().next(), target.getAmountRemaining(), source, game); + target.addTarget(possibleTargets.iterator().next(), target.getAmountRemaining(), source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } Iterator it = possibleTargets.iterator(); @@ -324,7 +324,7 @@ public class SimulatedPlayerMCTS extends MCTSPlayer { for (int i = 0; i < targetNum; i++) { targetId = it.next(); } - target.addTarget(targetId, RandomUtil.nextInt(target.getAmountRemaining()) + 1, source, game); + target.addTarget(targetId, RandomUtil.nextInt(target.getAmountRemaining()) + 1, source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } diff --git a/Mage.Tests/src/test/java/org/mage/test/player/RandomPlayer.java b/Mage.Tests/src/test/java/org/mage/test/player/RandomPlayer.java index 32be590187e..2e59c4e012b 100644 --- a/Mage.Tests/src/test/java/org/mage/test/player/RandomPlayer.java +++ b/Mage.Tests/src/test/java/org/mage/test/player/RandomPlayer.java @@ -232,7 +232,7 @@ public class RandomPlayer extends ComputerPlayer { } } if (possibleTargets.size() == 1) { - target.addTarget(possibleTargets.iterator().next(), source, game); + target.addTarget(possibleTargets.iterator().next(), source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } Iterator it = possibleTargets.iterator(); @@ -241,7 +241,7 @@ public class RandomPlayer extends ComputerPlayer { for (int i = 0; i < targetNum; i++) { targetId = it.next(); } - target.addTarget(targetId, source, game); + target.addTarget(targetId, source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } @@ -286,7 +286,7 @@ public class RandomPlayer extends ComputerPlayer { } Card card = cards.getRandom(game); if (card != null) { - target.addTarget(card.getId(), source, game); + target.addTarget(card.getId(), source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } return false; @@ -304,7 +304,7 @@ public class RandomPlayer extends ComputerPlayer { } } if (possibleTargets.size() == 1) { - target.addTarget(possibleTargets.iterator().next(), target.getAmountRemaining(), source, game); + target.addTarget(possibleTargets.iterator().next(), target.getAmountRemaining(), source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } Iterator it = possibleTargets.iterator(); @@ -313,7 +313,7 @@ public class RandomPlayer extends ComputerPlayer { for (int i = 0; i < targetNum; i++) { targetId = it.next(); } - target.addTarget(targetId, RandomUtil.nextInt(target.getAmountRemaining()) + 1, source, game); + target.addTarget(targetId, RandomUtil.nextInt(target.getAmountRemaining()) + 1, source, game); // todo: addtryaddtarget or return type (see computerPlayer) return true; } From 3359c1f3f1882068e13b273ede8ae24b4524399e Mon Sep 17 00:00:00 2001 From: Ingmar Goudt Date: Fri, 22 Feb 2019 12:05:44 +0100 Subject: [PATCH 21/21] sonar 220219, criticals --- .../java/mage/client/cards/DragCardGrid.java | 2 +- .../java/mage/client/chat/LocalCommands.java | 3 + .../mage/client/components/MageRoundPane.java | 6 +- .../components/ability/BackgroundPainter.java | 4 +- .../components/ext/MessageDialogType.java | 8 + .../client/components/ext/MessageDlg.java | 13 -- .../components/ext/dlg/DialogContainer.java | 207 +++++++----------- .../components/ext/dlg/DialogManager.java | 19 +- .../client/components/ext/dlg/DlgParams.java | 14 +- .../mage/client/unusedFiles/CombatDialog.java | 4 +- .../src/main/java/mage/utils/DeckBuilder.java | 14 +- .../server/record/TableRecordRepository.java | 3 +- .../server/record/UserStatsRepository.java | 7 +- .../main/java/mage/server/util/Config.java | 2 + .../mage/server/util/ServerMessagesUtil.java | 16 +- .../main/java/mage/server/util/Splitter.java | 2 + .../java/mage/server/util/SystemUtil.java | 15 +- Mage.Sets/src/mage/cards/a/Antagonism.java | 4 +- Mage.Sets/src/mage/cards/n/NullChamber.java | 72 ------ Mage.Sets/src/mage/cards/v/VenarianGold.java | 2 +- Mage.Sets/src/mage/cards/w/WallOfShadows.java | 2 +- .../common/SkipNextDrawStepTargetEffect.java | 2 +- .../mage/abilities/keyword/BountyAbility.java | 12 +- 23 files changed, 153 insertions(+), 280 deletions(-) create mode 100644 Mage.Client/src/main/java/mage/client/components/ext/MessageDialogType.java delete mode 100644 Mage.Client/src/main/java/mage/client/components/ext/MessageDlg.java diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java index 6364c83f9b9..12ca7ef2f7a 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java @@ -805,7 +805,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg insertArrow = new JLabel(); insertArrow.setSize(20, 20); insertArrow.setVisible(false); - cardContent.add(insertArrow, new Integer(1000)); + cardContent.add(insertArrow, 1000); // Selection panel selectionPanel = new SelectionBox(); diff --git a/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java b/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java index 92731f941c8..2fd0878f8f3 100644 --- a/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java +++ b/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java @@ -14,6 +14,9 @@ import java.util.UUID; public final class LocalCommands { + + private LocalCommands(){} + /** * Handler for commands that do not require server interaction, i.e settings etc * @param chatId diff --git a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java index 7d5e2c1fd08..7f7a7745628 100644 --- a/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java +++ b/Mage.Client/src/main/java/mage/client/components/MageRoundPane.java @@ -26,7 +26,7 @@ public class MageRoundPane extends JPanel { private int Y_OFFSET = 30; private final Color defaultBackgroundColor = new Color(141, 130, 112, 200); // color of the frame of the popup window private Color backgroundColor = defaultBackgroundColor; - private static final int alpha = 0; + private static final int ALPHA = 0; private static final Map SHADOW_IMAGE_CACHE; private static final Map IMAGE_CACHE; @@ -163,8 +163,8 @@ public class MageRoundPane extends JPanel { /** * Add white translucent substrate */ - /*if (alpha != 0) { - g2.setColor(new Color(255, 255, 255, alpha)); + /*if (ALPHA != 0) { + g2.setColor(new Color(255, 255, 255, ALPHA)); g2.fillRoundRect(x, y, w, h, arc, arc); }*/ g2.setColor(key.backgroundColor); diff --git a/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java b/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java index d87f2c7057b..9a2f8069131 100644 --- a/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java +++ b/Mage.Client/src/main/java/mage/client/components/ability/BackgroundPainter.java @@ -16,7 +16,7 @@ public class BackgroundPainter extends AbstractPainter { private final Color bgColor = Color.black; - static final float bgalpha = 0.6f; + static final float BACKGROUND_ALPHA = 0.6f; public BackgroundPainter() { super(); @@ -25,7 +25,7 @@ public class BackgroundPainter extends AbstractPainter { @Override protected void doPaint(Graphics2D g2, Object o, int i, int i1) { - float alpha = bgalpha; + float alpha = BACKGROUND_ALPHA; Component c = (Component)o; Composite composite = g2.getComposite(); if (composite instanceof AlphaComposite) { diff --git a/Mage.Client/src/main/java/mage/client/components/ext/MessageDialogType.java b/Mage.Client/src/main/java/mage/client/components/ext/MessageDialogType.java new file mode 100644 index 00000000000..535355a85a1 --- /dev/null +++ b/Mage.Client/src/main/java/mage/client/components/ext/MessageDialogType.java @@ -0,0 +1,8 @@ +package mage.client.components.ext; + +public enum MessageDialogType { + INFO, + WARNING, + ERROR, + FLASH_INFO +} diff --git a/Mage.Client/src/main/java/mage/client/components/ext/MessageDlg.java b/Mage.Client/src/main/java/mage/client/components/ext/MessageDlg.java deleted file mode 100644 index a09b8ca7962..00000000000 --- a/Mage.Client/src/main/java/mage/client/components/ext/MessageDlg.java +++ /dev/null @@ -1,13 +0,0 @@ -package mage.client.components.ext; - -/** - * @author mw, noxx - */ -public class MessageDlg { - - MessageDlg() {} - - public enum Types { - Info, Warning, Error, FlashInfo - } -} \ No newline at end of file diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogContainer.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogContainer.java index 39845bae64d..81048c967c2 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogContainer.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogContainer.java @@ -1,6 +1,6 @@ package mage.client.components.ext.dlg; -import mage.client.components.ext.MessageDlg; +import mage.client.components.ext.MessageDialogType; import mage.client.components.ext.dlg.impl.ChoiceDialog; import mage.client.components.ext.dlg.impl.StackDialog; @@ -37,146 +37,99 @@ public class DialogContainer extends JPanel { setLayout(null); drawContainer = true; - if (dialogType == DialogManager.MTGDialogs.MessageDialog) { - //backgroundColor = new Color(0, 255, 255, 60); - if (params.type == MessageDlg.Types.Warning) { - backgroundColor = new Color(255, 0, 0, 90); - } else { - backgroundColor = new Color(0, 0, 0, 90); + switch (dialogType) { + case MESSAGE: + //backgroundColor = new Color(0, 255, 255, 60); + if (params.type == MessageDialogType.WARNING) { + backgroundColor = new Color(255, 0, 0, 90); + } else { + backgroundColor = new Color(0, 0, 0, 90); + } + alpha = 0; + //MessageDlg dlg = new MessageDlg(params); + //add(dlg); + //dlg.setLocation(X_OFFSET + 10, Y_OFFSET); + //dlg.updateSize(params.rect.width, params.rect.height); + break; + case STACK: { + //backgroundColor = new Color(0, 255, 255, 60); + backgroundColor = new Color(0, 0, 0, 50); + alpha = 0; + StackDialog dlg = new StackDialog(params); + add(dlg); + dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); + //int width = Math.min(params.rect.width - 80, 600); + int width = params.rect.width; + int height = params.rect.height - 80; + dlg.updateSize(width, height); + break; } - alpha = 0; - //MessageDlg dlg = new MessageDlg(params); - //add(dlg); - //dlg.setLocation(X_OFFSET + 10, Y_OFFSET); - //dlg.updateSize(params.rect.width, params.rect.height); - } else if (dialogType == DialogManager.MTGDialogs.StackDialog) { - //backgroundColor = new Color(0, 255, 255, 60); - backgroundColor = new Color(0, 0, 0, 50); - alpha = 0; - StackDialog dlg = new StackDialog(params); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - //int width = Math.min(params.rect.width - 80, 600); - int width = params.rect.width; - int height = params.rect.height - 80; - dlg.updateSize(width, height); - } /* - else if (dialogType == DialogManager.MTGDialogs.CombatDialog) { + else if (dialogType == DialogManager.MTGDialogs.COMBAT) { backgroundColor = new Color(0, 0, 0, 60); alpha = 0; - CombatDialog dlg = new CombatDialog(params); + COMBAT dlg = new COMBAT(params); add(dlg); dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - }*/ else if (dialogType == DialogManager.MTGDialogs.ChoiceDialog) { + }*/ + case CHOICE: { - //backgroundColor = new Color(200, 200, 172, 120); - //backgroundColor = new Color(180, 150, 200, 120); - //backgroundColor = new Color(0, 255, 0, 60); + //backgroundColor = new Color(200, 200, 172, 120); + //backgroundColor = new Color(180, 150, 200, 120); + //backgroundColor = new Color(0, 255, 0, 60); - //backgroundColor = new Color(139, 46, 173, 20); - backgroundColor = new Color(0, 0, 0, 110); - //backgroundColor = new Color(139, 46, 173, 0); + //backgroundColor = new Color(139, 46, 173, 20); + backgroundColor = new Color(0, 0, 0, 110); + //backgroundColor = new Color(139, 46, 173, 0); - alpha = 0; - ChoiceDialog dlg = new ChoiceDialog(params, "Choose"); - add(dlg); - //GameManager.getManager().setCurrentChoiceDlg(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); + alpha = 0; + ChoiceDialog dlg = new ChoiceDialog(params, "Choose"); + add(dlg); + //GameManager.getManager().setCurrentChoiceDlg(dlg); + dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); + dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - } else if (dialogType == DialogManager.MTGDialogs.GraveDialog) { - - backgroundColor = new Color(0, 0, 0, 110); - - alpha = 0; - ChoiceDialog dlg = new ChoiceDialog(params, "Graveyard"); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - - } else if (dialogType == DialogManager.MTGDialogs.ExileDialog) { - - backgroundColor = new Color(250, 250, 250, 50); - - alpha = 0; - ChoiceDialog dlg = new ChoiceDialog(params, "Exile"); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - - } else if (dialogType == DialogManager.MTGDialogs.EmblemsDialog) { - - backgroundColor = new Color(0, 0, 50, 110); - - alpha = 0; - ChoiceDialog dlg = new ChoiceDialog(params, "Command Zone (Commander, Emblems and Planes)"); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - - } /*else if (dialogType == DialogManager.MTGDialogs.GraveDialog) { - backgroundColor = new Color(20, 20, 20, 120); - alpha = 0; - GraveDialog dlg = new GraveDialog(params); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - - } else if (dialogType == DialogManager.MTGDialogs.RevealDialog) { - backgroundColor = new Color(90, 135, 190, 80); - alpha = 0; - RevealDialog dlg = new RevealDialog(params); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - - } else if (dialogType == DialogManager.MTGDialogs.AssignDamageDialog) { - backgroundColor = new Color(255, 255, 255, 130); - alpha = 0; - AssignDamageDialog dlg = new AssignDamageDialog(params); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - } else if (dialogType == DialogManager.MTGDialogs.ManaChoiceDialog) { - backgroundColor = new Color(0, 255, 255, 60); - alpha = 20; - ManaChoiceDialog dlg = new ManaChoiceDialog(params); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); - dlg.updateSize(params.rect.width - 80, params.rect.height - 80); - - //isGradient = true; - gradient = ImageManager.getGradientImage(); - if (gradient != null) { - b = ImageToBufferedImage.toBufferedImage(gradient); - b = Transparency.makeImageTranslucent(b, 0.35); - Rectangle2D tr = new Rectangle2D.Double(0, 0, params.rect.width, params.rect.height); - //gradient = gradient.getScaledInstance(w, h, Image.SCALE_SMOOTH); - tp = new TexturePaint(b, tr); + break; + } + case GRAVEYARD: { + + backgroundColor = new Color(0, 0, 0, 110); + + alpha = 0; + ChoiceDialog dlg = new ChoiceDialog(params, "Graveyard"); + add(dlg); + dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); + dlg.updateSize(params.rect.width - 80, params.rect.height - 80); + + break; + } + case EXILE: { + + backgroundColor = new Color(250, 250, 250, 50); + + alpha = 0; + ChoiceDialog dlg = new ChoiceDialog(params, "Exile"); + add(dlg); + dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); + dlg.updateSize(params.rect.width - 80, params.rect.height - 80); + + break; + } + case EMBLEMS: { + + backgroundColor = new Color(0, 0, 50, 110); + + alpha = 0; + ChoiceDialog dlg = new ChoiceDialog(params, "Command Zone (Commander, Emblems and Planes)"); + add(dlg); + dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); + dlg.updateSize(params.rect.width - 80, params.rect.height - 80); + + break; } - } else if (dialogType == DialogManager.MTGDialogs.ChooseDeckDialog) { - MWDeckPanel deckPanel = new MWDeckPanel(params.getDeckList(), params.isAI); - deckPanel.setVisible(true); - deckPanel.setBounds(0,0,480,320); - add(deckPanel); - drawContainer = false; - } else if (dialogType == DialogManager.MTGDialogs.ChooseCommonDialog) { - MWChoosePanel choosePanel = new MWChoosePanel(params.getObjectList(), params.getTitle()); - choosePanel.setVisible(true); - choosePanel.setBounds(0,0,440,240); - add(choosePanel); - drawContainer = false; - } else if (dialogType == DialogManager.MTGDialogs.AboutDialog) { - backgroundColor = new Color(255, 255, 255, 120); - alpha = 0; - AboutDialog dlg = new AboutDialog(); - add(dlg); - dlg.setLocation(X_OFFSET + 10, Y_OFFSET + 10); } - */ } public void cleanUp() { diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java index 89cf45f1c1a..6b1e3a82c08 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DialogManager.java @@ -39,8 +39,8 @@ public class DialogManager extends JComponent implements MouseListener, } public enum MTGDialogs { - none, AboutDialog, MessageDialog, StackDialog, AssignDamageDialog, ManaChoiceDialog, ChoiceDialog, EmblemsDialog, GraveDialog, DialogContainer, CombatDialog, - ChooseDeckDialog, ChooseCommonDialog, RevealDialog, ExileDialog + NONE, ABOUT, MESSAGE, STACK, ASSIGN_DAMAGE, MANA_CHOICE, CHOICE, EMBLEMS, GRAVEYARD, DialogContainer, COMBAT, + CHOOSE_DECK, CHOOSE_COMMON, REVEAL, EXILE } /** @@ -58,7 +58,7 @@ public class DialogManager extends JComponent implements MouseListener, } } - private MTGDialogs currentDialog = MTGDialogs.none; + private MTGDialogs currentDialog = MTGDialogs.NONE; private DialogContainer dialogContainer = null; @@ -133,7 +133,7 @@ public class DialogManager extends JComponent implements MouseListener, params.gameId = gameId; params.feedbackPanel = feedbackPanel; params.setCards(cards); - dialogContainer = new DialogContainer(MTGDialogs.StackDialog, params); + dialogContainer = new DialogContainer(MTGDialogs.STACK, params); dialogContainer.setVisible(true); add(dialogContainer); @@ -163,7 +163,7 @@ public class DialogManager extends JComponent implements MouseListener, params.gameId = gameId; //params.feedbackPanel = feedbackPanel; params.setCards(cards); - dialogContainer = new DialogContainer(MTGDialogs.GraveDialog, params); + dialogContainer = new DialogContainer(MTGDialogs.GRAVEYARD, params); dialogContainer.setVisible(true); add(dialogContainer); @@ -192,7 +192,7 @@ public class DialogManager extends JComponent implements MouseListener, params.bigCard = bigCard; params.gameId = gameId; params.setCards(cards); - dialogContainer = new DialogContainer(MTGDialogs.ExileDialog, params); + dialogContainer = new DialogContainer(MTGDialogs.EXILE, params); dialogContainer.setVisible(true); add(dialogContainer); @@ -222,7 +222,7 @@ public class DialogManager extends JComponent implements MouseListener, params.gameId = gameId; //params.feedbackPanel = feedbackPanel; params.setCards(cards); - dialogContainer = new DialogContainer(MTGDialogs.EmblemsDialog, params); + dialogContainer = new DialogContainer(MTGDialogs.EMBLEMS, params); dialogContainer.setVisible(true); add(dialogContainer); @@ -248,7 +248,7 @@ public class DialogManager extends JComponent implements MouseListener, removeAll(); } - this.currentDialog = MTGDialogs.none; + this.currentDialog = MTGDialogs.NONE; setVisible(false); @@ -312,6 +312,7 @@ public class DialogManager extends JComponent implements MouseListener, @Override public void mouseExited(MouseEvent e) { + } @Override @@ -360,7 +361,7 @@ public class DialogManager extends JComponent implements MouseListener, public void mouseWheelMoved(MouseWheelEvent e) { int notches = e.getWheelRotation(); // System.out.println("outx:"+notches); -// if (currentDialog != null && currentDialog.equals(MTGDialogs.ChooseCommonDialog)) { +// if (currentDialog != null && currentDialog.equals(MTGDialogs.CHOOSE_COMMON)) { // System.out.println("out:"+1); // } } diff --git a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java index f4ad229f93e..51dc575b29b 100644 --- a/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java +++ b/Mage.Client/src/main/java/mage/client/components/ext/dlg/DlgParams.java @@ -1,7 +1,7 @@ package mage.client.components.ext.dlg; import mage.client.cards.BigCard; -import mage.client.components.ext.MessageDlg; +import mage.client.components.ext.MessageDialogType; import mage.client.game.FeedbackPanel; import mage.view.CardsView; @@ -19,7 +19,7 @@ import java.util.UUID; public class DlgParams { public Rectangle rect; - public MessageDlg.Types type; + public MessageDialogType type; public BigCard bigCard; public FeedbackPanel feedbackPanel; public UUID gameId; @@ -33,13 +33,13 @@ public class DlgParams { private String title; private int opponentID; - boolean isOptional = false; - boolean isChooseAbility = false; - boolean isCancelStopsPlaying = true; + private boolean isOptional = false; + private boolean isChooseAbility = false; + private boolean isCancelStopsPlaying = true; - boolean isAI = false; + private boolean isAI = false; - public Set manaChoices = new HashSet<>(); + private Set manaChoices = new HashSet<>(); public int getPlayerID() { return playerID; diff --git a/Mage.Client/src/main/java/mage/client/unusedFiles/CombatDialog.java b/Mage.Client/src/main/java/mage/client/unusedFiles/CombatDialog.java index c1f7d8df526..f3f8e826a46 100644 --- a/Mage.Client/src/main/java/mage/client/unusedFiles/CombatDialog.java +++ b/Mage.Client/src/main/java/mage/client/unusedFiles/CombatDialog.java @@ -1,7 +1,7 @@ /* - * CombatDialog.java + * COMBAT.java * * Created on Feb 10, 2010, 3:35:02 PM */ @@ -33,7 +33,7 @@ public class CombatDialog extends MageDialog { private int lastX = 500; private int lastY = 300; - /** Creates new form CombatDialog */ + /** Creates new form COMBAT */ public CombatDialog() { JPanel contentPane = new JPanel() { diff --git a/Mage.Common/src/main/java/mage/utils/DeckBuilder.java b/Mage.Common/src/main/java/mage/utils/DeckBuilder.java index 74615c9bffc..6d599f935c6 100644 --- a/Mage.Common/src/main/java/mage/utils/DeckBuilder.java +++ b/Mage.Common/src/main/java/mage/utils/DeckBuilder.java @@ -164,10 +164,7 @@ public final class DeckBuilder { } } if (count > 0) { - Integer typeCount = colorCount.get(symbol); - if (typeCount == null) { - typeCount = 0; - } + Integer typeCount = colorCount.getOrDefault(symbol, 0); typeCount += 1; colorCount.put(symbol, typeCount); } @@ -243,9 +240,9 @@ public final class DeckBuilder { int type; if (card.isCreature()) { type = 10; - } else if (card.getSubtype(null).contains(SubType.EQUIPMENT)) { + } else if (card.hasSubtype(SubType.EQUIPMENT, null)) { type = 8; - } else if (card.getSubtype(null).contains(SubType.AURA)) { + } else if (card.hasSubtype(SubType.AURA, null)) { type = 5; } else if (card.isInstant()) { type = 7; @@ -283,10 +280,7 @@ public final class DeckBuilder { multicolor += 1; colors.add(symbol); } - Integer typeCount = singleCount.get(symbol); - if (typeCount == null) { - typeCount = 0; - } + Integer typeCount = singleCount.getOrDefault(symbol, 0); typeCount += 1; singleCount.put(symbol, typeCount); maxSingleCount = Math.max(maxSingleCount, typeCount); diff --git a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java index 6c7cbd49ea2..d6d7997c41f 100644 --- a/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/TableRecordRepository.java @@ -13,6 +13,7 @@ import org.apache.log4j.Logger; import java.io.File; import java.sql.SQLException; +import java.util.Collections; import java.util.List; public enum TableRecordRepository { @@ -63,7 +64,7 @@ public enum TableRecordRepository { } catch (SQLException ex) { Logger.getLogger(TableRecordRepository.class).error("Error getting table_records from DB - ", ex); } - return null; + return Collections.emptyList(); } public void closeDB() { diff --git a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java index a7b47617d8a..0bbe5cab296 100644 --- a/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java +++ b/Mage.Server/src/main/java/mage/server/record/UserStatsRepository.java @@ -16,10 +16,7 @@ import org.apache.log4j.Logger; import java.io.File; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; public enum UserStatsRepository { @@ -89,7 +86,7 @@ public enum UserStatsRepository { } catch (SQLException ex) { Logger.getLogger(UserStatsRepository.class).error("Error getting all users from DB - ", ex); } - return null; + return Collections.emptyList(); } public long getLatestEndTimeMs() { diff --git a/Mage.Server/src/main/java/mage/server/util/Config.java b/Mage.Server/src/main/java/mage/server/util/Config.java index d21319ccba5..73a1cf7a82f 100644 --- a/Mage.Server/src/main/java/mage/server/util/Config.java +++ b/Mage.Server/src/main/java/mage/server/util/Config.java @@ -12,6 +12,8 @@ import org.apache.log4j.Logger; */ public final class Config { + private Config(){} + private static final Logger logger = Logger.getLogger(Config.class); static { diff --git a/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java b/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java index 7c822046cd3..942718882dd 100644 --- a/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java +++ b/Mage.Server/src/main/java/mage/server/util/ServerMessagesUtil.java @@ -8,6 +8,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Scanner; import java.util.concurrent.Executors; @@ -52,7 +53,6 @@ public enum ServerMessagesUtil { } - public List getMessages() { lock.readLock().lock(); try { @@ -66,9 +66,7 @@ public enum ServerMessagesUtil { log.debug("Reading server messages..."); List motdMessages = readFromFile(); List newMessages = new ArrayList<>(); - if (motdMessages != null) { - newMessages.addAll(motdMessages); - } + newMessages.addAll(motdMessages); newMessages.add(getServerStatistics()); newMessages.add(getServerStatistics2()); @@ -83,7 +81,7 @@ public enum ServerMessagesUtil { private List readFromFile() { if (ignore) { - return null; + return Collections.emptyList(); } File externalFile = null; if (pathToExternalMessages != null) { @@ -120,7 +118,7 @@ public enum ServerMessagesUtil { } if (is == null) { log.warn("Couldn't find server.msg"); - return null; + return Collections.emptyList(); } Scanner scanner = null; @@ -133,8 +131,8 @@ public enum ServerMessagesUtil { newMessages.add(message.trim()); } } - } catch(Exception e) { - log.error(e,e); + } catch (Exception e) { + log.error(e, e); } finally { StreamUtils.closeQuietly(scanner); StreamUtils.closeQuietly(is); @@ -168,7 +166,7 @@ public enum ServerMessagesUtil { return statistics.toString(); } -// private Timer timer = new Timer(1000 * 60, new ActionListener() { + // private Timer timer = new Timer(1000 * 60, new ActionListener() { // public void actionPerformed(ActionEvent e) { // reloadMessages(); // } diff --git a/Mage.Server/src/main/java/mage/server/util/Splitter.java b/Mage.Server/src/main/java/mage/server/util/Splitter.java index 2a1b1f980d4..6290a80d47a 100644 --- a/Mage.Server/src/main/java/mage/server/util/Splitter.java +++ b/Mage.Server/src/main/java/mage/server/util/Splitter.java @@ -11,6 +11,8 @@ import mage.players.Player; */ public final class Splitter { + private Splitter(){} + public static List split(Game game, UUID playerId) { List players = new ArrayList<>(); //players.add(playerId); // add original player diff --git a/Mage.Server/src/main/java/mage/server/util/SystemUtil.java b/Mage.Server/src/main/java/mage/server/util/SystemUtil.java index 96a69327d13..382021e4cf6 100644 --- a/Mage.Server/src/main/java/mage/server/util/SystemUtil.java +++ b/Mage.Server/src/main/java/mage/server/util/SystemUtil.java @@ -31,6 +31,8 @@ import java.util.stream.Collectors; */ public final class SystemUtil { + private SystemUtil(){} + public static final DateFormat dateFormat = new SimpleDateFormat("yy-M-dd HH:mm:ss"); private static final String INIT_FILE_PATH = "config" + File.separator + "init.txt"; @@ -120,7 +122,7 @@ public final class SystemUtil { String cardInfo = card.getName() + " - " + card.getExpansionSetCode(); // optional info - ArrayList resInfo = new ArrayList<>(); + List resInfo = new ArrayList<>(); for (String param : commandParams) { switch (param) { case PARAM_COLOR_COST: @@ -147,7 +149,7 @@ public final class SystemUtil { } } - if (resInfo.size() > 0) { + if (!resInfo.isEmpty()) { cardInfo += ": " + resInfo.stream().collect(Collectors.joining("; ")); } @@ -555,12 +557,9 @@ public final class SystemUtil { * @return */ private static Optional findPlayer(Game game, String name) { - for (Player player : game.getPlayers().values()) { - if (player.getName().equals(name)) { - return Optional.of(player); - } - } - return Optional.empty(); + return game.getPlayers().values().stream() + .filter(player -> player.getName().equals(name)).findFirst(); + } public static String sanitize(String input) { diff --git a/Mage.Sets/src/mage/cards/a/Antagonism.java b/Mage.Sets/src/mage/cards/a/Antagonism.java index 818a31125e5..0ad3603e87a 100644 --- a/Mage.Sets/src/mage/cards/a/Antagonism.java +++ b/Mage.Sets/src/mage/cards/a/Antagonism.java @@ -19,12 +19,12 @@ import mage.watchers.common.BloodthirstWatcher; */ public final class Antagonism extends CardImpl { - private static final String rule = "{this} deals 2 damage to that player unless one of his or her opponents was dealt damage this turn"; + private static final String rule = "{this} deals 2 damage to that player unless one of their opponents was dealt damage this turn"; public Antagonism(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}"); - // At the beginning of each player's end step, Antagonism deals 2 damage to that player unless one of his or her opponents was dealt damage this turn. + // At the beginning of each player's end step, Antagonism deals 2 damage to that player unless one of their opponents was dealt damage this turn. this.addAbility(new BeginningOfEndStepTriggeredAbility(new ConditionalOneShotEffect(new DamageTargetEffect(2), new OpponentWasNotDealtDamageCondition(), rule), TargetController.ANY, false)); diff --git a/Mage.Sets/src/mage/cards/n/NullChamber.java b/Mage.Sets/src/mage/cards/n/NullChamber.java index 43e5cf667c2..c235e31d0f2 100644 --- a/Mage.Sets/src/mage/cards/n/NullChamber.java +++ b/Mage.Sets/src/mage/cards/n/NullChamber.java @@ -53,78 +53,6 @@ public final class NullChamber extends CardImpl { } } -class NullChamberChooseACardNameEffect extends OneShotEffect { - - public static String INFO_KEY = "NAMED_CARD"; - - public enum TypeOfName { - NOT_BASIC_LAND_NAME, - } - - private final TypeOfName typeOfName; - - public NullChamberChooseACardNameEffect(TypeOfName typeOfName) { - super(Outcome.Detriment); - this.typeOfName = typeOfName; - staticText = setText(); - } - - public NullChamberChooseACardNameEffect(final NullChamberChooseACardNameEffect effect) { - super(effect); - this.typeOfName = effect.typeOfName; - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - Player opponent = game.getPlayer(source.getFirstTarget()); - MageObject sourceObject = game.getPermanentEntering(source.getSourceId()); - if (sourceObject == null) { - sourceObject = game.getObject(source.getSourceId()); - } - if (controller != null - && opponent != null - && sourceObject != null) { - Choice cardChoice = new ChoiceImpl(); - switch (typeOfName) { - case NOT_BASIC_LAND_NAME: - cardChoice.setChoices(CardRepository.instance.getNotBasicLandNames()); - cardChoice.setMessage("Choose a card name other than a basic land card name"); - break; - } - cardChoice.clearChoice(); - if (controller.choose(Outcome.Detriment, cardChoice, game)) { - String cardName = cardChoice.getChoice(); - if (!game.isSimulation()) { - game.informPlayers(sourceObject.getLogName() + ", named card: [" + cardName + ']'); - } - game.getState().setValue(source.getSourceId().toString() + INFO_KEY, cardName); - if (sourceObject instanceof Permanent) { - ((Permanent) sourceObject).addInfo(INFO_KEY, CardUtil.addToolTipMarkTags("Named card: " + cardName), game); - } - return true; - } - } - return false; - } - - @Override - public NullChamberChooseACardNameEffect copy() { - return new NullChamberChooseACardNameEffect(this); - } - - private String setText() { - StringBuilder sb = new StringBuilder("choose a "); - switch (typeOfName) { - case NOT_BASIC_LAND_NAME: - sb.append("card name other than a basic land card"); - break; - } - sb.append(" name"); - return sb.toString(); - } -} - class NullChamberReplacementEffect extends ContinuousRuleModifyingEffectImpl { diff --git a/Mage.Sets/src/mage/cards/v/VenarianGold.java b/Mage.Sets/src/mage/cards/v/VenarianGold.java index cb25f2c2317..3de871a0556 100644 --- a/Mage.Sets/src/mage/cards/v/VenarianGold.java +++ b/Mage.Sets/src/mage/cards/v/VenarianGold.java @@ -71,7 +71,7 @@ class VenarianGoldValue implements DynamicValue { @Override public int calculate(Game game, Ability sourceAbility, Effect effect) { MageObject mageObject = game.getLastKnownInformation(sourceAbility.getSourceId(), Zone.STACK); - if (mageObject != null && mageObject instanceof StackObject) { + if (mageObject instanceof StackObject) { return ((StackObject) mageObject).getStackAbility().getManaCostsToPay().getX(); } return 0; diff --git a/Mage.Sets/src/mage/cards/w/WallOfShadows.java b/Mage.Sets/src/mage/cards/w/WallOfShadows.java index d87ffe7d98b..248b0bf21e3 100644 --- a/Mage.Sets/src/mage/cards/w/WallOfShadows.java +++ b/Mage.Sets/src/mage/cards/w/WallOfShadows.java @@ -111,7 +111,7 @@ class CanTargetOnlyWallsPredicate implements Predicate { for (Mode mode : stackObject.getStackAbility().getModes().values()) { for (Target target : mode.getTargets()) { Filter filter = target.getFilter(); - if (filter != null && filter instanceof FilterPermanent) { + if (filter instanceof FilterPermanent) { for (Object predicate : filter.getPredicates()) { if (predicate instanceof SubtypePredicate) { if (predicate.toString().equals("Subtype(Wall)")) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/SkipNextDrawStepTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/SkipNextDrawStepTargetEffect.java index 2f1ba7d187e..e0d819beaff 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/SkipNextDrawStepTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/SkipNextDrawStepTargetEffect.java @@ -21,7 +21,7 @@ public class SkipNextDrawStepTargetEffect extends ReplacementEffectImpl { public SkipNextDrawStepTargetEffect() { super(Duration.OneUse, Outcome.Detriment); - staticText = "Target player skips his or her next draw step"; + staticText = "Target player skips their next draw step"; } public SkipNextDrawStepTargetEffect(final SkipNextDrawStepTargetEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/keyword/BountyAbility.java b/Mage/src/main/java/mage/abilities/keyword/BountyAbility.java index e41e160ec75..0879c6608b6 100644 --- a/Mage/src/main/java/mage/abilities/keyword/BountyAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/BountyAbility.java @@ -19,23 +19,23 @@ import mage.filter.predicate.permanent.CounterPredicate; */ public class BountyAbility extends DiesCreatureTriggeredAbility { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls with a bounty counter on it"); + private static final FilterCreaturePermanent bountyCounterFilter = new FilterCreaturePermanent("creature an opponent controls with a bounty counter on it"); static { - filter.add(new ControllerPredicate(TargetController.OPPONENT)); - filter.add(new CounterPredicate(CounterType.BOUNTY)); + bountyCounterFilter.add(new ControllerPredicate(TargetController.OPPONENT)); + bountyCounterFilter.add(new CounterPredicate(CounterType.BOUNTY)); } public BountyAbility(Effect effect) { - super(effect, false, filter); + super(effect, false, bountyCounterFilter); } public BountyAbility(Effect effect, boolean optional) { - super(effect, optional, filter); + super(effect, optional, bountyCounterFilter); } public BountyAbility(Effect effect, boolean optional, boolean setTargetPointer) { - super(effect, optional, filter, setTargetPointer); + super(effect, optional, bountyCounterFilter, setTargetPointer); } public BountyAbility(final BountyAbility ability) {