From 5ce60300ea723dc3a88671212e3ab63834d320fe Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 7 Apr 2012 10:26:44 +0000 Subject: [PATCH] move refactoring removed old card alignment code from guiDisplay --- .gitattributes | 18 +- src/main/java/forge/Card.java | 7 +- src/main/java/forge/CardUtil.java | 1 + src/main/java/forge/GuiDisplayUtil.java | 1616 ----------------- src/main/java/forge/ImageCache.java | 1 + src/main/java/forge/MagicStack.java | 2 + .../AbilityFactoryCounters.java | 2 +- .../card/cardfactory/AbstractCardFactory.java | 2 +- .../cardfactory/CardFactoryCreatures.java | 2 +- .../card/cardfactory/CardFactoryLands.java | 2 +- .../cardfactory/CardFactorySorceries.java | 2 +- .../card/cardfactory/CardFactoryUtil.java | 2 +- .../java/forge/card/cost/CostDiscard.java | 2 +- src/main/java/forge/card/cost/CostExile.java | 2 +- src/main/java/forge/card/cost/CostMana.java | 2 +- .../java/forge/card/cost/CostPutCounter.java | 2 +- src/main/java/forge/card/cost/CostReturn.java | 2 +- src/main/java/forge/card/cost/CostReveal.java | 2 +- .../java/forge/card/cost/CostSacrifice.java | 2 +- .../java/forge/card/cost/CostTapType.java | 2 +- .../card/spellability/AbilityTriggered.java | 4 +- .../card/spellability/SpellPermanent.java | 2 +- .../card/spellability/TargetSelection.java | 2 +- .../forge/{ => card/trigger}/ZCTrigger.java | 4 +- .../java/forge/control/ControlMatchUI.java | 2 +- .../java/forge/control/input/InputAttack.java | 2 +- .../java/forge/control/input/InputBlock.java | 2 +- .../forge/control/input/InputCleanup.java | 2 +- .../forge/control/input/InputMulligan.java | 2 +- .../control/input/InputPassPriority.java | 4 +- .../forge/control/input/InputPayManaCost.java | 2 +- .../input/InputPayManaCostAbility.java | 2 +- .../forge/control/match/ControlField.java | 2 +- .../forge/control/match/ControlMessage.java | 2 +- .../forge/control/match/ControlTabber.java | 2 +- src/main/java/forge/game/phase/Untap.java | 2 +- src/main/java/forge/game/phase/Upkeep.java | 2 +- .../forge/game/player/ComputerAIGeneral.java | 1 - .../java/forge/game/player/ComputerUtil.java | 1 - .../{ => game/player}/ComputerUtilBlock.java | 9 +- src/main/java/forge/game/player/Player.java | 2 - .../java/forge/game/player/PlayerUtil.java | 2 +- src/main/java/forge/gui/GuiDisplayUtil.java | 809 +++++++++ .../forge/{ => gui}/GuiImportPicture.java | 2 +- src/main/java/forge/{ => gui}/GuiInput.java | 6 +- .../GuiMigrateLocalMWSSetPicturesHQ.java | 10 +- .../forge/{ => gui}/GuiMultipleBlockers.java | 7 +- .../forge/{ => gui}/GuiProgressBarWindow.java | 2 +- .../gui/MultiPhaseProgressMonitorWithETA.java | 1 - .../deckeditor/elements/CardPanelHeavy.java | 2 +- .../gui/download/GuiDownloadPicturesLQ.java | 2 +- .../java/forge/gui/game/CardDetailPanel.java | 2 +- src/main/java/forge/gui/game/CardPanel.java | 2 +- .../gui/home/utilities/CSubmenuUtilities.java | 2 +- src/main/java/forge/util/CopyFiles.java | 2 +- .../java/forge/{ => view}/ButtonUtil.java | 4 +- .../GuiMigrateLocalMWSSetPicturesHQTest.java | 2 + .../java/forge/GuiMultipleBlockers4Test.java | 2 + .../java/forge/GuiProgressBarWindowTest.java | 2 + 59 files changed, 903 insertions(+), 1684 deletions(-) delete mode 100644 src/main/java/forge/GuiDisplayUtil.java rename src/main/java/forge/{ => card/trigger}/ZCTrigger.java (96%) rename src/main/java/forge/{ => game/player}/ComputerUtilBlock.java (99%) create mode 100644 src/main/java/forge/gui/GuiDisplayUtil.java rename src/main/java/forge/{ => gui}/GuiImportPicture.java (99%) rename src/main/java/forge/{ => gui}/GuiInput.java (96%) rename src/main/java/forge/{ => gui}/GuiMigrateLocalMWSSetPicturesHQ.java (98%) rename src/main/java/forge/{ => gui}/GuiMultipleBlockers.java (98%) rename src/main/java/forge/{ => gui}/GuiProgressBarWindow.java (99%) rename src/main/java/forge/{ => view}/ButtonUtil.java (98%) diff --git a/.gitattributes b/.gitattributes index 5dcf710a8a9..53d8b82ecf7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11348,7 +11348,6 @@ src/main/java/arcane/util/Util.java svneol=native#text/plain src/main/java/arcane/util/package-info.java svneol=native#text/plain src/main/java/forge/AllZone.java svneol=native#text/plain src/main/java/forge/AllZoneUtil.java svneol=native#text/plain -src/main/java/forge/ButtonUtil.java svneol=native#text/plain src/main/java/forge/Card.java svneol=native#text/plain src/main/java/forge/CardCharactersticName.java -text src/main/java/forge/CardColor.java svneol=native#text/plain @@ -11367,19 +11366,12 @@ src/main/java/forge/Command.java svneol=native#text/plain src/main/java/forge/CommandArgs.java svneol=native#text/plain src/main/java/forge/CommandList.java svneol=native#text/plain src/main/java/forge/CommandReturn.java svneol=native#text/plain -src/main/java/forge/ComputerUtilBlock.java svneol=native#text/plain src/main/java/forge/Constant.java svneol=native#text/plain src/main/java/forge/Counters.java svneol=native#text/plain src/main/java/forge/GameAction.java svneol=native#text/plain src/main/java/forge/GameActionUtil.java svneol=native#text/plain src/main/java/forge/GameEntity.java -text src/main/java/forge/GameLog.java -text -src/main/java/forge/GuiDisplayUtil.java svneol=native#text/plain -src/main/java/forge/GuiImportPicture.java svneol=native#text/plain -src/main/java/forge/GuiInput.java svneol=native#text/plain -src/main/java/forge/GuiMigrateLocalMWSSetPicturesHQ.java svneol=native#text/plain -src/main/java/forge/GuiMultipleBlockers.java svneol=native#text/plain -src/main/java/forge/GuiProgressBarWindow.java svneol=native#text/plain src/main/java/forge/HandSizeOp.java svneol=native#text/plain src/main/java/forge/ImageCache.java svneol=native#text/plain src/main/java/forge/MagicStack.java svneol=native#text/plain @@ -11389,7 +11381,6 @@ src/main/java/forge/Singletons.java svneol=native#text/plain src/main/java/forge/StaticEffect.java svneol=native#text/plain src/main/java/forge/StaticEffects.java svneol=native#text/plain src/main/java/forge/UndoCommand.java svneol=native#text/plain -src/main/java/forge/ZCTrigger.java svneol=native#text/plain src/main/java/forge/card/BoosterData.java -text src/main/java/forge/card/BoosterGenerator.java svneol=native#text/plain src/main/java/forge/card/CardBlock.java -text @@ -11557,6 +11548,7 @@ src/main/java/forge/card/trigger/TriggerTurnFaceUp.java svneol=native#text/plain src/main/java/forge/card/trigger/TriggerType.java -text src/main/java/forge/card/trigger/TriggerUnequip.java svneol=native#text/plain src/main/java/forge/card/trigger/TriggerUntaps.java svneol=native#text/plain +src/main/java/forge/card/trigger/ZCTrigger.java svneol=native#text/plain src/main/java/forge/card/trigger/package-info.java svneol=native#text/plain src/main/java/forge/control/ControlBazaarUI.java -text src/main/java/forge/control/ControlMatchUI.java -text @@ -11647,6 +11639,7 @@ src/main/java/forge/game/player/ComputerAIGeneral.java svneol=native#text/plain src/main/java/forge/game/player/ComputerAIInput.java svneol=native#text/plain src/main/java/forge/game/player/ComputerUtil.java svneol=native#text/plain src/main/java/forge/game/player/ComputerUtilAttack.java svneol=native#text/plain +src/main/java/forge/game/player/ComputerUtilBlock.java svneol=native#text/plain src/main/java/forge/game/player/DefaultPlayerZone.java svneol=native#text/plain src/main/java/forge/game/player/HumanPlayer.java svneol=native#text/plain src/main/java/forge/game/player/IPlayerZone.java svneol=native#text/plain @@ -11658,6 +11651,12 @@ src/main/java/forge/game/player/PlayerZoneComesIntoPlay.java svneol=native#text/ src/main/java/forge/gui/CardContainer.java svneol=native#text/plain src/main/java/forge/gui/CardListViewer.java -text src/main/java/forge/gui/ForgeAction.java svneol=native#text/plain +src/main/java/forge/gui/GuiDisplayUtil.java svneol=native#text/plain +src/main/java/forge/gui/GuiImportPicture.java svneol=native#text/plain +src/main/java/forge/gui/GuiInput.java svneol=native#text/plain +src/main/java/forge/gui/GuiMigrateLocalMWSSetPicturesHQ.java svneol=native#text/plain +src/main/java/forge/gui/GuiMultipleBlockers.java svneol=native#text/plain +src/main/java/forge/gui/GuiProgressBarWindow.java svneol=native#text/plain src/main/java/forge/gui/GuiUtils.java svneol=native#text/plain src/main/java/forge/gui/ListChooser.java svneol=native#text/plain src/main/java/forge/gui/MultiLineLabel.java svneol=native#text/plain @@ -11872,6 +11871,7 @@ src/main/java/forge/util/StorageView.java -text src/main/java/forge/util/TextUtil.java -text src/main/java/forge/util/XmlUtil.java -text src/main/java/forge/util/package-info.java -text +src/main/java/forge/view/ButtonUtil.java svneol=native#text/plain src/main/java/forge/view/FView.java svneol=native#text/plain src/main/java/forge/view/Main.java -text src/main/java/forge/view/SplashFrame.java -text diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index ff21b784a48..0e7a28063e0 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -50,6 +50,7 @@ import forge.card.spellability.Target; import forge.card.staticability.StaticAbility; import forge.card.trigger.Trigger; import forge.card.trigger.TriggerType; +import forge.card.trigger.ZCTrigger; import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.item.CardDb; @@ -3224,7 +3225,7 @@ public class Card extends GameEntity implements Comparable { * @param c * a {@link forge.Command} object. * @param typeIn - * a {@link forge.ZCTrigger} object. + * a {@link forge.card.trigger.ZCTrigger} object. */ public final void addTrigger(final Command c, final ZCTrigger typeIn) { this.zcTriggers.add(new AbilityTriggered(this, c, typeIn)); @@ -3238,7 +3239,7 @@ public class Card extends GameEntity implements Comparable { * @param c * a {@link forge.Command} object. * @param typeIn - * a {@link forge.ZCTrigger} object. + * a {@link forge.card.trigger.ZCTrigger} object. */ public final void removeTrigger(final Command c, final ZCTrigger typeIn) { this.zcTriggers.remove(new AbilityTriggered(this, c, typeIn)); @@ -3250,7 +3251,7 @@ public class Card extends GameEntity implements Comparable { *

* * @param type - * a {@link forge.ZCTrigger} object. + * a {@link forge.card.trigger.ZCTrigger} object. */ public final void executeTrigger(final ZCTrigger type) { for (final AbilityTriggered t : this.zcTriggers) { diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index eabaeb3c72f..b40875f0571 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -38,6 +38,7 @@ import forge.card.spellability.SpellAbilityList; import forge.card.trigger.TriggerType; import forge.control.input.InputPayManaCostUtil; import forge.game.player.DefaultPlayerZone; +import forge.gui.GuiDisplayUtil; import forge.item.CardPrinted; import forge.properties.ForgeProps; import forge.properties.NewConstants; diff --git a/src/main/java/forge/GuiDisplayUtil.java b/src/main/java/forge/GuiDisplayUtil.java deleted file mode 100644 index fefb5bcdc12..00000000000 --- a/src/main/java/forge/GuiDisplayUtil.java +++ /dev/null @@ -1,1616 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Point; -import java.io.BufferedReader; -import java.io.DataInputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import javax.swing.BorderFactory; -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.border.Border; - -import arcane.ui.PlayArea; -import arcane.ui.util.Animation; -import forge.Constant.Zone; -import forge.card.cardfactory.CardFactoryUtil; -import forge.card.spellability.AbilityMana; -import forge.card.trigger.TriggerType; -import forge.game.player.Player; -import forge.gui.GuiUtils; -import forge.gui.ListChooser; -import forge.gui.game.CardPanel; -import forge.item.CardDb; -import forge.item.CardPrinted; - -/** - *

- * GuiDisplayUtil class. - *

- * - * @author Forge - * @version $Id$ - */ -public final class GuiDisplayUtil { - - private GuiDisplayUtil() { - throw new AssertionError(); - } - - /** - *

- * getBorder. - *

- * - * @param card - * a {@link forge.Card} object. - * @return a {@link javax.swing.border.Border} object. - */ - public static Border getBorder(final Card card) { - // color info - if (card == null) { - return BorderFactory.createEmptyBorder(2, 2, 2, 2); - } - java.awt.Color color; - final ArrayList list = CardUtil.getColors(card); - - if (card.isFaceDown()) { - color = Color.gray; - } else if (list.size() > 1) { - color = Color.orange; - } else if (list.get(0).equals(Constant.Color.BLACK)) { - color = Color.black; - } else if (list.get(0).equals(Constant.Color.GREEN)) { - color = new Color(0, 220, 39); - } else if (list.get(0).equals(Constant.Color.WHITE)) { - color = Color.white; - } else if (list.get(0).equals(Constant.Color.RED)) { - color = Color.red; - } else if (list.get(0).equals(Constant.Color.BLUE)) { - color = Color.blue; - } else if (list.get(0).equals(Constant.Color.COLORLESS)) { - color = Color.gray; - } else { - color = new Color(200, 0, 230); // If your card has a violet border, - // something is wrong - } - - if (color != Color.gray) { - - int r = color.getRed(); - int g = color.getGreen(); - int b = color.getBlue(); - - final int shade = 10; - - r -= shade; - g -= shade; - b -= shade; - - r = Math.max(0, r); - g = Math.max(0, g); - b = Math.max(0, b); - - color = new Color(r, g, b); - - return BorderFactory.createLineBorder(color, 2); - } else { - return BorderFactory.createLineBorder(Color.gray, 2); - } - } - - /** - *

- * devModeGenerateMana. - *

- */ - public static void devModeGenerateMana() { - final Card dummy = new Card(); - dummy.setOwner(AllZone.getHumanPlayer()); - dummy.addController(AllZone.getHumanPlayer()); - final AbilityMana abMana = new AbilityMana(dummy, "0", "W U B G R 1", 10) { - private static final long serialVersionUID = -2164401486331182356L; - - }; - abMana.produceMana(); - } - - /** - *

- * formatCardType. - *

- * - * @param card - * a {@link forge.Card} object. - * @return a {@link java.lang.String} object. - */ - public static String formatCardType(final Card card) { - final ArrayList list = card.getType(); - final StringBuilder sb = new StringBuilder(); - - final ArrayList superTypes = new ArrayList(); - final ArrayList cardTypes = new ArrayList(); - final ArrayList subTypes = new ArrayList(); - final boolean allCreatureTypes = list.contains("AllCreatureTypes"); - - for (final String t : list) { - if (allCreatureTypes && t.equals("AllCreatureTypes")) { - continue; - } - if (CardUtil.isASuperType(t) && !superTypes.contains(t)) { - superTypes.add(t); - } - if (CardUtil.isACardType(t) && !cardTypes.contains(t)) { - cardTypes.add(t); - } - if (CardUtil.isASubType(t) && !subTypes.contains(t) && (!allCreatureTypes || !CardUtil.isACreatureType(t))) { - subTypes.add(t); - } - } - - for (final String type : superTypes) { - sb.append(type).append(" "); - } - for (final String type : cardTypes) { - sb.append(type).append(" "); - } - if (!subTypes.isEmpty() || allCreatureTypes) { - sb.append("- "); - } - if (allCreatureTypes) { - sb.append("All creature types "); - } - for (final String type : subTypes) { - sb.append(type).append(" "); - } - - return sb.toString(); - } - - /** - *

- * cleanString. - *

- * - * @param in - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String cleanString(final String in) { - final StringBuffer out = new StringBuffer(); - char c; - for (int i = 0; i < in.length(); i++) { - c = in.charAt(i); - if ((c == ' ') || (c == '-')) { - out.append('_'); - } else if (Character.isLetterOrDigit(c) || (c == '_')) { - out.append(c); - } - } - return out.toString().toLowerCase(); - } - - /** - *

- * cleanStringMWS. - *

- * - * @param in - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String cleanStringMWS(final String in) { - final StringBuffer out = new StringBuffer(); - char c; - for (int i = 0; i < in.length(); i++) { - c = in.charAt(i); - if ((c == '"') || (c == '/')) { - out.append(""); - } else { - out.append(c); - } - } - return out.toString(); - } - - /** - *

- * setupNoLandPanel. - *

- * - * @param j - * a {@link javax.swing.JPanel} object. - * @param c - * an array of {@link forge.Card} objects. - */ - public static void setupNoLandPanel(final JPanel j, final Card[] c) { - final ArrayList a = new ArrayList(); - /* - * for(int i = 0; i < c.length; i++) if(c[i].isCreature() || - * c[i].isGlobalEnchantment() || c[i].isArtifact() || - * c[i].isPlaneswalker()) a.add(c[i]); - */ - - /* - * - * //creatures or planeswalkers for(int i = 0; i < c.length; i++) - * //!artifact because of Memnarch turning planeswalkers into artifacts. - * if (c[i].isCreature() || (c[i].isPlaneswalker() && - * !c[i].isArtifact())) a.add(c[i]); //(noncreature, - * non-enchantment,nonland) artifacts for(int i = 0; i < c.length; i++) - * if (c[i].isArtifact() && !c[i].isCreature() && !c[i].isLand() && - * !c[i].isGlobalEnchantment() ) a.add(c[i]); //(noncreature) - * enchantments for(int i = 0; i < c.length; i++) if - * (c[i].isGlobalEnchantment() && !c[i].isCreature()) a.add(c[i]); - */ - - for (final Card element : c) { - a.add(element); - } - - GuiDisplayUtil.setupNoLandPermPanel(j, a, true); - } - - /** - *

- * setupLandPanel. - *

- * - * @param j - * a {@link javax.swing.JPanel} object. - * @param c - * an array of {@link forge.Card} objects. - */ - public static void setupLandPanel(final JPanel j, final Card[] c) { - final ArrayList a = new ArrayList(); - for (int i = 0; i < c.length; i++) { - if (((!(c[i].isCreature() || c[i].isEnchantment() || c[i].isArtifact() || c[i].isPlaneswalker()) || (c[i] - .isLand() && c[i].isArtifact() && !c[i].isCreature() && !c[i].isEnchantment()))) - || (c[i].getName().startsWith("Mox") && !c[i].getName().equals("Mox Diamond"))) { - a.add(c[i]); - } - } - GuiDisplayUtil.setupPanel(j, a, true); - } - - /* - * private static void setupPanel(JPanel p, ArrayList list) { - * setupPanel(p, list, false); } - */ - - // list holds Card objects - // puts local enchanments in the right order - // adds "<<" to local enchanments names - /** - *

- * setupPanel. - *

- * - * @param p - * a {@link javax.swing.JPanel} object. - * @param list - * a {@link java.util.ArrayList} object. - * @param stack - * a boolean. - */ - private static void setupPanel(final JPanel p, ArrayList list, final boolean stack) { - - int maxY = 0; - int maxX = 0; - // remove all local enchantments - - Card c; - /* - * for(int i = 0; i < list.size(); i++) { c = (Card)list.get(i); - * if(c.isLocalEnchantment()) list.remove(i); } - * - * //add local enchantments to the permanents //put local enchantments - * "next to" the permanent they are enchanting //the inner for loop is - * backward so permanents with more than one local enchantments are in - * the right order Card ca[]; for(int i = 0; i < list.size(); i++) { c = - * (Card)list.get(i); if(c.hasAttachedCards()) { ca = - * c.getAttachedCards(); for(int inner = ca.length - 1; 0 <= inner; - * inner--) list.add(i + 1, ca[inner]); } } - */ - - if (stack) { - // add all Cards in list to the GUI, add arrows to Local - // Enchantments - - final ArrayList enchantedLands = GuiDisplayUtil.getEnchantedLands(list); - final ArrayList basicBlues = GuiDisplayUtil.getBasics(list, Constant.Color.BLUE); - final ArrayList basicReds = GuiDisplayUtil.getBasics(list, Constant.Color.RED); - final ArrayList basicBlacks = GuiDisplayUtil.getBasics(list, Constant.Color.BLACK); - final ArrayList basicGreens = GuiDisplayUtil.getBasics(list, Constant.Color.GREEN); - final ArrayList basicWhites = GuiDisplayUtil.getBasics(list, Constant.Color.WHITE); - final ArrayList badlands = GuiDisplayUtil.getNonBasicLand(list, "Badlands"); - final ArrayList bayou = GuiDisplayUtil.getNonBasicLand(list, "Bayou"); - final ArrayList plateau = GuiDisplayUtil.getNonBasicLand(list, "Plateau"); - final ArrayList scrubland = GuiDisplayUtil.getNonBasicLand(list, "Scrubland"); - final ArrayList savannah = GuiDisplayUtil.getNonBasicLand(list, "Savannah"); - final ArrayList taiga = GuiDisplayUtil.getNonBasicLand(list, "Taiga"); - final ArrayList tropicalIsland = GuiDisplayUtil.getNonBasicLand(list, "Tropical Island"); - final ArrayList tundra = GuiDisplayUtil.getNonBasicLand(list, "Tundra"); - final ArrayList undergroundSea = GuiDisplayUtil.getNonBasicLand(list, "Underground Sea"); - final ArrayList volcanicIsland = GuiDisplayUtil.getNonBasicLand(list, "Volcanic Island"); - - final ArrayList nonBasics = GuiDisplayUtil.getNonBasics(list); - - final ArrayList moxEmerald = GuiDisplayUtil.getMoxen(list, "Mox Emerald"); - final ArrayList moxJet = GuiDisplayUtil.getMoxen(list, "Mox Jet"); - final ArrayList moxPearl = GuiDisplayUtil.getMoxen(list, "Mox Pearl"); - final ArrayList moxRuby = GuiDisplayUtil.getMoxen(list, "Mox Ruby"); - final ArrayList moxSapphire = GuiDisplayUtil.getMoxen(list, "Mox Sapphire"); - // ArrayList moxDiamond = getMoxen(list, "Mox Diamond"); - - list = new ArrayList(); - list.addAll(enchantedLands); - list.addAll(basicBlues); - list.addAll(basicReds); - list.addAll(basicBlacks); - list.addAll(basicGreens); - list.addAll(basicWhites); - list.addAll(badlands); - list.addAll(bayou); - list.addAll(plateau); - list.addAll(scrubland); - list.addAll(savannah); - list.addAll(taiga); - list.addAll(tropicalIsland); - list.addAll(tundra); - list.addAll(undergroundSea); - list.addAll(volcanicIsland); - - list.addAll(nonBasics); - - list.addAll(moxEmerald); - list.addAll(moxJet); - list.addAll(moxPearl); - list.addAll(moxRuby); - list.addAll(moxSapphire); - // list.addAll(moxDiamond); - - int atInStack = 0; - - final int marginX = 5; - final int marginY = 5; - - int x = marginX; - - final int cardOffset = Constant.Runtime.STACK_OFFSET[0]; - - String color = ""; - final ArrayList cards = new ArrayList(); - - final ArrayList connectedCards = new ArrayList(); - - boolean nextEnchanted = false; - Card prevCard = null; - int nextXIfNotStacked = 0; - for (int i = 0; i < list.size(); i++) { - JPanel addPanel; - c = list.get(i); - - addPanel = new CardPanel(c); - - boolean startANewStack = false; - - if (!GuiDisplayUtil.isStackable(c)) { - startANewStack = true; - } else { - final String newColor = c.getName(); // CardUtil.getColor(c); - - if (!newColor.equals(color)) { - startANewStack = true; - color = newColor; - } - } - - if (i == 0) { - startANewStack = false; - } - - if (!startANewStack && (atInStack == Constant.Runtime.STACK_SIZE[0])) { - startANewStack = true; - } - - if (c.isAura() && c.isEnchanting() && !nextEnchanted) { - startANewStack = false; - } else if (c.isAura() && c.isEnchanting()) { - startANewStack = true; - nextEnchanted = false; - } - - if (c.isLand() && c.isEnchanted()) { - startANewStack = false; - nextEnchanted = true; - } - - // very hacky, but this is to ensure enchantment stacking occurs - // correctly when - // a land is enchanted, and there are more lands of that same - // name - - else if (((prevCard != null) && c.isLand() && prevCard.isLand() && prevCard.isEnchanted() && prevCard - .getName().equals(c.getName()))) { - startANewStack = true; - } else if ((prevCard != null) && c.isLand() && prevCard.isLand() - && !prevCard.getName().equals(c.getName())) { - startANewStack = true; - } - - /* - * if (c.getName().equals("Squirrel Nest")) { startANewStack = - * true; System.out.println("startANewStack: " + - * startANewStack); } - */ - if (c.isAura() && c.isEnchanting() && (prevCard != null)) { - startANewStack = true; - } - - if (startANewStack) { - GuiDisplayUtil.setupConnectedCards(connectedCards); - connectedCards.clear(); - - // Fixed distance if last was a stack, looks a bit nicer - if (atInStack > 1) { - x += Math.max(addPanel.getPreferredSize().width, addPanel.getPreferredSize().height) + marginX; - } else { - x = nextXIfNotStacked; - } - - atInStack = 0; - } else { - if (i != 0) { - x += cardOffset; - } - } - - nextXIfNotStacked = x + marginX + addPanel.getPreferredSize().width; - - final int xLoc = x; - - int yLoc = marginY; - yLoc += atInStack * cardOffset; - - addPanel.setLocation(new Point(xLoc, yLoc)); - addPanel.setSize(addPanel.getPreferredSize()); - - cards.add(addPanel); - - connectedCards.add((CardPanel) addPanel); - - atInStack++; - prevCard = c; - } - - GuiDisplayUtil.setupConnectedCards(connectedCards); - connectedCards.clear(); - - for (int i = cards.size() - 1; i >= 0; i--) { - final JPanel card = cards.get(i); - // maxX = Math.max(maxX, card.getLocation().x + - // card.getSize().width + marginX); - maxY = Math.max(maxY, card.getLocation().y + card.getSize().height + marginY); - p.add(card); - } - - maxX = nextXIfNotStacked; - - // System.out.println("x:" + maxX + ", y:" + maxY); - if ((maxX > 0) && (maxY > 0)) { // p.getSize().width || maxY > - // p.getSize().height) { - // p.setSize(new Dimension(maxX, maxY)); - p.setPreferredSize(new Dimension(maxX, maxY)); - } - - } else { - // add all Cards in list to the GUI, add arrows to Local - // Enchantments - JPanel addPanel; - for (int i = 0; i < list.size(); i++) { - c = list.get(i); - /* - * if(c.isLocalEnchantment()) addPanel = getCardPanel(c, "<< " - * +c.getName()); else addPanel = getCardPanel(c); - */ - addPanel = new CardPanel(c); - - p.add(addPanel); - } - } - } // setupPanel() - - /** - *

- * setupNoLandPermPanel. - *

- * - * @param p - * a {@link javax.swing.JPanel} object. - * @param list - * a {@link java.util.ArrayList} object. - * @param stack - * a boolean. - */ - private static void setupNoLandPermPanel(final JPanel p, ArrayList list, final boolean stack) { - - int maxY = 0; - int maxX = 0; - - Card c; - - if (stack) { - // add all Cards in list to the GUI, add arrows to Local - // Enchantments - - final ArrayList planeswalkers = GuiDisplayUtil.getPlaneswalkers(list); - // this will also fetch the equipment and/or enchantment - final ArrayList equippedEnchantedCreatures = GuiDisplayUtil.getEquippedEnchantedCreatures(list); - final ArrayList nonTokenCreatures = GuiDisplayUtil.getNonTokenCreatures(list); - final ArrayList tokenCreatures = GuiDisplayUtil.getTokenCreatures(list); - - // sort tokenCreatures by name (TODO fix the warning message - // somehow) - Collections.sort(tokenCreatures, new Comparator() { - @Override - public int compare(final Card c1, final Card c2) { - return c1.getName().compareTo(c2.getName()); - } - }); - - final ArrayList artifacts = GuiDisplayUtil.getNonCreatureArtifacts(list); - final ArrayList enchantments = GuiDisplayUtil.getGlobalEnchantments(list); - // ArrayList nonBasics = getNonBasics(list); - - list = new ArrayList(); - list.addAll(planeswalkers); - list.addAll(equippedEnchantedCreatures); - list.addAll(nonTokenCreatures); - list.addAll(tokenCreatures); - list.addAll(artifacts); - list.addAll(enchantments); - - int atInStack = 0; - - final int marginX = 5; - final int marginY = 5; - - int x = marginX; - - final int cardOffset = Constant.Runtime.STACK_OFFSET[0]; - - String color = ""; - final ArrayList cards = new ArrayList(); - - final ArrayList connectedCards = new ArrayList(); - - boolean nextEquippedEnchanted = false; - int nextXIfNotStacked = 0; - Card prevCard = null; - for (int i = 0; i < list.size(); i++) { - JPanel addPanel; - c = list.get(i); - addPanel = new CardPanel(c); - - boolean startANewStack = false; - - if (!GuiDisplayUtil.isStackable(c)) { - startANewStack = true; - } else { - final String newColor = c.getName(); // CardUtil.getColor(c); - - if (!newColor.equals(color)) { - startANewStack = true; - color = newColor; - } - } - - if (i == 0) { - startANewStack = false; - } - - if (!startANewStack && (atInStack == Constant.Runtime.STACK_SIZE[0])) { - startANewStack = true; - } - - if ((c.isEquipment() || c.isAura()) && (c.isEquipping() || c.isEnchanting()) && !nextEquippedEnchanted) { - startANewStack = false; - } else if ((c.isEquipment() || c.isAura()) && (c.isEquipping() || c.isEnchanting())) { - startANewStack = true; - nextEquippedEnchanted = false; - } - - if (c.isCreature() && (c.isEquipped() || c.isEnchanted())) { - startANewStack = false; - nextEquippedEnchanted = true; - } - // very hacky, but this is to ensure equipment stacking occurs - // correctly when a token - // is equipped/enchanted, and there are more tokens of that same - // name - else if (((prevCard != null) && c.isCreature() && prevCard.isCreature() - && (prevCard.isEquipped() || prevCard.isEnchanted()) && prevCard.getName().equals(c.getName()))) { - startANewStack = true; - } else if ((prevCard != null) && c.isCreature() && prevCard.isCreature() - && !prevCard.getName().equals(c.getName())) { - startANewStack = true; - } - - if (((c.isAura() && c.isEnchanting()) || (c.isEquipment() && c.isEquipping())) && (prevCard != null) - && prevCard.isPlaneswalker()) { - startANewStack = true; - } - - if (startANewStack) { - GuiDisplayUtil.setupConnectedCards(connectedCards); - connectedCards.clear(); - - // Fixed distance if last was a stack, looks a bit nicer - if (atInStack > 1) { - x += Math.max(addPanel.getPreferredSize().width, addPanel.getPreferredSize().height) + marginX; - } else { - x = nextXIfNotStacked; - } - - atInStack = 0; - } else { - if (i != 0) { - x += cardOffset; - } - } - - nextXIfNotStacked = x + marginX + addPanel.getPreferredSize().width; - - final int xLoc = x; - - int yLoc = marginY; - yLoc += atInStack * cardOffset; - - addPanel.setLocation(new Point(xLoc, yLoc)); - addPanel.setSize(addPanel.getPreferredSize()); - - cards.add(addPanel); - - connectedCards.add((CardPanel) addPanel); - - atInStack++; - prevCard = c; - } - - GuiDisplayUtil.setupConnectedCards(connectedCards); - connectedCards.clear(); - - for (int i = cards.size() - 1; i >= 0; i--) { - final JPanel card = cards.get(i); - // maxX = Math.max(maxX, card.getLocation().x + - // card.getSize().width + marginX); - maxY = Math.max(maxY, card.getLocation().y + card.getSize().height + marginY); - p.add(card); - } - - maxX = nextXIfNotStacked; - - if ((maxX > 0) && (maxY > 0)) { // p.getSize().width || maxY > - // p.getSize().height) { - p.setPreferredSize(new Dimension(maxX, maxY)); - } - - } else { - JPanel addPanel; - for (int i = 0; i < list.size(); i++) { - c = list.get(i); - addPanel = new CardPanel(c); - - p.add(addPanel); - } - } - } // setupPanel() - - /** - *

- * getPlaneswalkers. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getPlaneswalkers(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - if (c.isPlaneswalker() && !c.isArtifact()) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getEquippedEnchantedCreatures. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getEquippedEnchantedCreatures(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - if (c.isCreature() && (c.isEquipped() || c.isEnchanted())) { - if (c.isEquipped()) { - ret.addAll(c.getEquippedBy()); - } - if (c.isEnchanted()) { - ret.addAll(c.getEnchantedBy()); - } - - ret.add(c); - } - - } - return ret; - } - - /** - *

- * getNonTokenCreatures. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getNonTokenCreatures(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - if (c.isCreature() && !c.isToken() && !c.isEquipped() && !c.isEnchanted()) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getTokenCreatures. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getTokenCreatures(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - if (c.isCreature() && c.isToken() && !c.isEquipped() && !c.isEnchanted()) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getTokenCreatures. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @param tokenName - * a {@link java.lang.String} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getTokenCreatures(final ArrayList cards, final String tokenName) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - final String name = c.getName(); - if (c.isCreature() && c.isToken() && name.equals(tokenName)) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getMoxen. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @param moxName - * a {@link java.lang.String} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getMoxen(final ArrayList cards, final String moxName) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - final String name = c.getName(); - if (name.equals(moxName) && !c.isCreature()) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getNonCreatureArtifacts. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getNonCreatureArtifacts(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - final String name = c.getName(); - if (c.isArtifact() && !c.isCreature() && !c.isLand() && !c.isGlobalEnchantment() - && !(c.isEquipment() && c.isEquipping()) && !name.equals("Mox Emerald") && !name.equals("Mox Jet") - && !name.equals("Mox Pearl") && !name.equals("Mox Ruby") && !name.equals("Mox Sapphire")) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getGlobalEnchantments. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getGlobalEnchantments(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - if (c.isGlobalEnchantment() && !c.isCreature()) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getCard. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @param name - * a {@link java.lang.String} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getCard(final ArrayList cards, final String name) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - if (c.getName().equals(name)) { - ret.add(c); - } - } - return ret; - } - - /** - *

- * getEnchantedLands. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getEnchantedLands(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - for (final Card c : cards) { - if (c.isLand() && c.isEnchanted()) { - ret.addAll(c.getEnchantedBy()); - ret.add(c); - } - - } - return ret; - } - - /** - *

- * getBasics. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @param color - * a {@link java.lang.String} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getBasics(final ArrayList cards, final String color) { - final ArrayList ret = new ArrayList(); - - for (final Card c : cards) { - final String name = c.getName(); - - if (c.isEnchanted()) { - // do nothing - } - - else if (name.equals("Swamp") || name.equals("Bog")) { - if (color == Constant.Color.BLACK) { - ret.add(c); - } - } else if (name.equals("Forest") || name.equals("Grass")) { - if (color == Constant.Color.GREEN) { - ret.add(c); - } - - } else if (name.equals("Plains") || name.equals("White Sand")) { - if (color == Constant.Color.WHITE) { - ret.add(c); - } - - } else if (name.equals("Mountain") || name.equals("Rock")) { - if (color == Constant.Color.RED) { - ret.add(c); - } - - } else if (name.equals("Island") || name.equals("Underwater")) { - if (color == Constant.Color.BLUE) { - ret.add(c); - } - } - } - - return ret; - } - - /** - *

- * getNonBasics. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getNonBasics(final ArrayList cards) { - final ArrayList ret = new ArrayList(); - - for (final Card c : cards) { - if (!c.isLand() && !c.getName().startsWith("Mox")) { - ret.add(c); - } else { - final String name = c.getName(); - if (c.isEnchanted() || name.equals("Swamp") || name.equals("Bog") || name.equals("Forest") - || name.equals("Grass") || name.equals("Plains") || name.equals("White Sand") - || name.equals("Mountain") || name.equals("Rock") || name.equals("Island") - || name.equals("Underwater") || name.equals("Badlands") || name.equals("Bayou") - || name.equals("Plateau") || name.equals("Scrubland") || name.equals("Savannah") - || name.equals("Taiga") || name.equals("Tropical Island") || name.equals("Tundra") - || name.equals("Underground Sea") || name.equals("Volcanic Island") || name.startsWith("Mox")) { - // do nothing. - } else { - ret.add(c); - } - } - } - - return ret; - } - - /** - *

- * getNonBasicLand. - *

- * - * @param cards - * a {@link java.util.ArrayList} object. - * @param landName - * a {@link java.lang.String} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getNonBasicLand(final ArrayList cards, final String landName) { - final ArrayList ret = new ArrayList(); - - for (final Card c : cards) { - if (c.getName().equals(landName)) { - ret.add(c); - } - } - - return ret; - } - - /** - *

- * isStackable. - *

- * - * @param c - * a {@link forge.Card} object. - * @return a boolean. - */ - public static boolean isStackable(final Card c) { - if (c.isLand() || (c.getName().startsWith("Mox") && !c.getName().equals("Mox Diamond")) - || (c.isLand() && c.isEnchanted()) || (c.isAura() && c.isEnchanting()) - || (c.isToken() && CardFactoryUtil.multipleControlled(c)) - || (c.isCreature() && (c.isEquipped() || c.isEnchanted())) || (c.isEquipment() && c.isEquipping()) - || (c.isEnchantment())) { - return true; - } - - return false; - } - - // ~ - /** - *

- * setupConnectedCards. - *

- * - * @param connectedCards - * a {@link java.util.ArrayList} object. - */ - public static void setupConnectedCards(final ArrayList connectedCards) { - for (int i = connectedCards.size() - 1; i > 0; i--) { - // System.out.println("We should have a stack"); - final CardPanel cp = connectedCards.get(i); - cp.setConnectedCard(connectedCards.get(i - 1)); - } - } - - // ~ - - /** - *

- * setupPlayZone. - *

- * - * @param p - * a {@link arcane.ui.PlayArea} object. - * @param c - * an array of {@link forge.Card} objects. - */ - public static void setupPlayZone(final PlayArea p, final List c) { - List tmp, diff; - tmp = new ArrayList(); - for (final arcane.ui.CardPanel cpa : p.getCardPanels()) { - tmp.add(cpa.getGameCard()); - } - diff = new ArrayList(tmp); - diff.removeAll(c); - if (diff.size() == p.getCardPanels().size()) { - p.clear(); - } else { - for (final Card card : diff) { - p.removeCardPanel(p.getCardPanel(card.getUniqueNumber())); - } - } - diff = new ArrayList(c); - diff.removeAll(tmp); - - arcane.ui.CardPanel toPanel = null; - for (final Card card : diff) { - toPanel = p.addCard(card); - Animation.moveCard(toPanel); - } - - for (final Card card : c) { - toPanel = p.getCardPanel(card.getUniqueNumber()); - if (card.isTapped()) { - toPanel.setTapped(true); - toPanel.setTappedAngle(arcane.ui.CardPanel.TAPPED_ANGLE); - } else { - toPanel.setTapped(false); - toPanel.setTappedAngle(0); - } - toPanel.getAttachedPanels().clear(); - if (card.isEnchanted()) { - final ArrayList enchants = card.getEnchantedBy(); - for (final Card e : enchants) { - final arcane.ui.CardPanel cardE = p.getCardPanel(e.getUniqueNumber()); - if (cardE != null) { - toPanel.getAttachedPanels().add(cardE); - } - } - } - - if (card.isEquipped()) { - final ArrayList enchants = card.getEquippedBy(); - for (final Card e : enchants) { - final arcane.ui.CardPanel cardE = p.getCardPanel(e.getUniqueNumber()); - if (cardE != null) { - toPanel.getAttachedPanels().add(cardE); - } - } - } - - if (card.isEnchantingCard()) { - toPanel.setAttachedToPanel(p.getCardPanel(card.getEnchantingCard().getUniqueNumber())); - } else if (card.isEquipping()) { - toPanel.setAttachedToPanel(p.getCardPanel(card.getEquipping().get(0).getUniqueNumber())); - } else { - toPanel.setAttachedToPanel(null); - } - - toPanel.setCard(toPanel.getGameCard()); - } - p.invalidate(); - p.repaint(); - } - - /** - *

- * updateGUI. - *

- */ - public static void updateGUI() { - AllZone.getComputerPlayer().getZone(Zone.Battlefield).updateObservers(); - AllZone.getHumanPlayer().getZone(Zone.Battlefield).updateObservers(); - //AllZone.getHumanPlayer().getZone(Zone.Hand).updateObservers(); - AllZone.getComputerPlayer().updateObservers(); - AllZone.getHumanPlayer().updateObservers(); - } - - /** - *

- * devSetupGameState. - *

- */ - public static void devSetupGameState() { - String tHumanLife = "-1"; - String tComputerLife = "-1"; - String tHumanSetupCardsInPlay = "NONE"; - String tComputerSetupCardsInPlay = "NONE"; - String tHumanSetupCardsInHand = "NONE"; - String tComputerSetupCardsInHand = "NONE"; - String tHumanSetupGraveyard = "NONE"; - String tComputerSetupGraveyard = "NONE"; - String tHumanSetupLibrary = "NONE"; - String tComputerSetupLibrary = "NONE"; - String tHumanSetupExile = "NONE"; - String tComputerSetupExile = "NONE"; - String tChangePlayer = "NONE"; - String tChangePhase = "NONE"; - - final String wd = "."; - final JFileChooser fc = new JFileChooser(wd); - final int rc = fc.showDialog(null, "Select Game State File"); - if (rc != JFileChooser.APPROVE_OPTION) { - return; - } - - try { - final FileInputStream fstream = new FileInputStream(fc.getSelectedFile().getAbsolutePath()); - final DataInputStream in = new DataInputStream(fstream); - final BufferedReader br = new BufferedReader(new InputStreamReader(in)); - - String temp = ""; - - while ((temp = br.readLine()) != null) { - final String[] tempData = temp.split("="); - - if (tempData.length < 2) { - continue; - } - if (tempData[0].toCharArray()[0] == '#') { - continue; - } - - final String categoryName = tempData[0]; - final String categoryValue = tempData[1]; - - if (categoryName.toLowerCase().equals("humanlife")) { - tHumanLife = categoryValue; - } else if (categoryName.toLowerCase().equals("ailife")) { - tComputerLife = categoryValue; - } else if (categoryName.toLowerCase().equals("humancardsinplay")) { - tHumanSetupCardsInPlay = categoryValue; - } else if (categoryName.toLowerCase().equals("aicardsinplay")) { - tComputerSetupCardsInPlay = categoryValue; - } else if (categoryName.toLowerCase().equals("humancardsinhand")) { - tHumanSetupCardsInHand = categoryValue; - } else if (categoryName.toLowerCase().equals("aicardsinhand")) { - tComputerSetupCardsInHand = categoryValue; - } else if (categoryName.toLowerCase().equals("humancardsingraveyard")) { - tHumanSetupGraveyard = categoryValue; - } else if (categoryName.toLowerCase().equals("aicardsingraveyard")) { - tComputerSetupGraveyard = categoryValue; - } else if (categoryName.toLowerCase().equals("humancardsinlibrary")) { - tHumanSetupLibrary = categoryValue; - } else if (categoryName.toLowerCase().equals("aicardsinlibrary")) { - tComputerSetupLibrary = categoryValue; - } else if (categoryName.toLowerCase().equals("humancardsinexile")) { - tHumanSetupExile = categoryValue; - } else if (categoryName.toLowerCase().equals("aicardsinexile")) { - tComputerSetupExile = categoryValue; - } else if (categoryName.toLowerCase().equals("activeplayer")) { - tChangePlayer = categoryValue; - } else if (categoryName.toLowerCase().equals("activephase")) { - tChangePhase = categoryValue; - } - } - - in.close(); - } catch (final FileNotFoundException fnfe) { - JOptionPane.showMessageDialog(null, "File not found: " + fc.getSelectedFile().getAbsolutePath()); - } catch (final Exception e) { - JOptionPane.showMessageDialog(null, "Error loading battle setup file!"); - return; - } - - final int setHumanLife = Integer.parseInt(tHumanLife); - final int setComputerLife = Integer.parseInt(tComputerLife); - - final String[] humanSetupCardsInPlay = tHumanSetupCardsInPlay.split(";"); - final String[] computerSetupCardsInPlay = tComputerSetupCardsInPlay.split(";"); - final String[] humanSetupCardsInHand = tHumanSetupCardsInHand.split(";"); - final String[] computerSetupCardsInHand = tComputerSetupCardsInHand.split(";"); - final String[] humanSetupGraveyard = tHumanSetupGraveyard.split(";"); - final String[] computerSetupGraveyard = tComputerSetupGraveyard.split(";"); - final String[] humanSetupLibrary = tHumanSetupLibrary.split(";"); - final String[] computerSetupLibrary = tComputerSetupLibrary.split(";"); - final String[] humanSetupExile = tHumanSetupExile.split(";"); - final String[] computerSetupExile = tComputerSetupExile.split(";"); - - CardList humanDevSetup = new CardList(); - CardList computerDevSetup = new CardList(); - CardList humanDevHandSetup = new CardList(); - CardList computerDevHandSetup = new CardList(); - CardList humanDevGraveyardSetup = new CardList(); - CardList computerDevGraveyardSetup = new CardList(); - CardList humanDevLibrarySetup = new CardList(); - CardList computerDevLibrarySetup = new CardList(); - CardList humanDevExileSetup = new CardList(); - CardList computerDevExileSetup = new CardList(); - - if (!tChangePlayer.trim().toLowerCase().equals("none")) { - if (tChangePlayer.trim().toLowerCase().equals("human")) { - Singletons.getModel().getGameState().getPhaseHandler().setPlayerTurn(AllZone.getHumanPlayer()); - } - if (tChangePlayer.trim().toLowerCase().equals("ai")) { - Singletons.getModel().getGameState().getPhaseHandler().setPlayerTurn(AllZone.getComputerPlayer()); - } - } - - if (!tChangePhase.trim().toLowerCase().equals("none")) { - Singletons.getModel().getGameState().getPhaseHandler().setDevPhaseState(forge.game.phase.PhaseType.smartValueOf(tChangePhase)); - } - - if (!tHumanSetupCardsInPlay.trim().toLowerCase().equals("none")) { - humanDevSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupCardsInPlay, AllZone.getHumanPlayer()); - } - - if (!tHumanSetupCardsInHand.trim().toLowerCase().equals("none")) { - humanDevHandSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupCardsInHand, AllZone.getHumanPlayer()); - } - - if (!tComputerSetupCardsInPlay.trim().toLowerCase().equals("none")) { - computerDevSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupCardsInPlay, - AllZone.getComputerPlayer()); - } - - if (!tComputerSetupCardsInHand.trim().toLowerCase().equals("none")) { - computerDevHandSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupCardsInHand, - AllZone.getComputerPlayer()); - } - - if (!tComputerSetupGraveyard.trim().toLowerCase().equals("none")) { - computerDevGraveyardSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupGraveyard, - AllZone.getComputerPlayer()); - } - - if (!tHumanSetupGraveyard.trim().toLowerCase().equals("none")) { - humanDevGraveyardSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupGraveyard, - AllZone.getHumanPlayer()); - } - - if (!tHumanSetupLibrary.trim().toLowerCase().equals("none")) { - humanDevLibrarySetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupLibrary, AllZone.getHumanPlayer()); - } - - if (!tComputerSetupLibrary.trim().toLowerCase().equals("none")) { - computerDevLibrarySetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupLibrary, - AllZone.getComputerPlayer()); - } - - if (!tHumanSetupExile.trim().toLowerCase().equals("none")) { - humanDevExileSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupExile, AllZone.getHumanPlayer()); - } - - if (!tComputerSetupExile.trim().toLowerCase().equals("none")) { - computerDevExileSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupExile, - AllZone.getComputerPlayer()); - } - - AllZone.getTriggerHandler().suppressMode(TriggerType.ChangesZone); - AllZone.getCombat().reset(); - for (final Card c : humanDevSetup) { - AllZone.getHumanPlayer().getZone(Zone.Hand).add(c); - Singletons.getModel().getGameAction().moveToPlay(c); - c.setSickness(false); - } - - for (final Card c : computerDevSetup) { - AllZone.getComputerPlayer().getZone(Zone.Hand).add(c); - Singletons.getModel().getGameAction().moveToPlay(c); - c.setSickness(false); - } - - if (computerDevGraveyardSetup.size() > 0) { - AllZone.getComputerPlayer().getZone(Zone.Graveyard).setCards(computerDevGraveyardSetup); - } - if (humanDevGraveyardSetup.size() > 0) { - AllZone.getHumanPlayer().getZone(Zone.Graveyard).setCards(humanDevGraveyardSetup); - } - - if (computerDevHandSetup.size() > 0) { - AllZone.getComputerPlayer().getZone(Zone.Hand).setCards(computerDevHandSetup); - } - if (humanDevHandSetup.size() > 0) { - AllZone.getHumanPlayer().getZone(Zone.Hand).setCards(humanDevHandSetup); - } - - if (humanDevLibrarySetup.size() > 0) { - AllZone.getHumanPlayer().getZone(Zone.Library).setCards(humanDevLibrarySetup); - } - if (computerDevLibrarySetup.size() > 0) { - AllZone.getComputerPlayer().getZone(Zone.Library).setCards(computerDevLibrarySetup); - } - - if (humanDevExileSetup.size() > 0) { - AllZone.getHumanPlayer().getZone(Zone.Exile).setCards(humanDevExileSetup); - } - if (computerDevExileSetup.size() > 0) { - AllZone.getComputerPlayer().getZone(Zone.Exile).setCards(computerDevExileSetup); - } - - AllZone.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); - - if (setComputerLife > 0) { - AllZone.getComputerPlayer().setLife(setComputerLife, null); - } - if (setHumanLife > 0) { - AllZone.getHumanPlayer().setLife(setHumanLife, null); - } - - Singletons.getModel().getGameAction().checkStateEffects(); - Singletons.getModel().getGameState().getPhaseHandler().updateObservers(); - AllZone.getHumanPlayer().getZone(Zone.Exile).updateObservers(); - AllZone.getComputerPlayer().getZone(Zone.Exile).updateObservers(); - AllZone.getHumanPlayer().getZone(Zone.Hand).updateObservers(); - AllZone.getComputerPlayer().getZone(Zone.Hand).updateObservers(); - AllZone.getHumanPlayer().getZone(Zone.Graveyard).updateObservers(); - AllZone.getComputerPlayer().getZone(Zone.Graveyard).updateObservers(); - AllZone.getHumanPlayer().getZone(Zone.Battlefield).updateObservers(); - AllZone.getComputerPlayer().getZone(Zone.Battlefield).updateObservers(); - AllZone.getHumanPlayer().getZone(Zone.Library).updateObservers(); - AllZone.getComputerPlayer().getZone(Zone.Library).updateObservers(); - } - - /** - *

- * devProcessCardsForZone. - *

- * - * @param data - * an array of {@link java.lang.String} objects. - * @param player - * a {@link forge.game.player.Player} object. - * @return a {@link forge.CardList} object. - */ - public static CardList devProcessCardsForZone(final String[] data, final Player player) { - final CardList cl = new CardList(); - for (final String element : data) { - final String[] cardinfo = element.trim().split("\\|"); - - final Card c = AllZone.getCardFactory().getCard(cardinfo[0], player); - - boolean hasSetCurSet = false; - for (final String info : cardinfo) { - if (info.startsWith("Set:")) { - c.setCurSetCode(info.substring(info.indexOf(':') + 1)); - hasSetCurSet = true; - } else if (info.equalsIgnoreCase("Tapped:True")) { - c.tap(); - } else if (info.startsWith("Counters:")) { - final String[] counterStrings = info.substring(info.indexOf(':') + 1).split(","); - for (final String counter : counterStrings) { - c.addCounter(Counters.valueOf(counter), 1); - } - } else if (info.equalsIgnoreCase("SummonSick:True")) { - c.setSickness(true); - } else if (info.equalsIgnoreCase("FaceDown:True")) { - c.setState(CardCharactersticName.FaceDown); - } - } - - if (!hasSetCurSet) { - c.setCurSetCode(c.getMostRecentSet()); - } - - c.setImageFilename(CardUtil.buildFilename(c)); - cl.add(c); - } - return cl; - } - - /** - *

- * devModeTutor. - *

- * - * @since 1.0.15 - */ - public static void devModeTutor() { - final CardList lib = AllZone.getHumanPlayer().getCardsIn(Zone.Library); - final Object o = GuiUtils.chooseOneOrNone("Choose a card", lib.toArray()); - if (null == o) { - return; - } else { - final Card c = (Card) o; - Singletons.getModel().getGameAction().moveToHand(c); - } - } - - /** - *

- * devModeTutor. - *

- * - * @since 1.2.7 - */ - public static void devModeAddAnyCard() { - final Iterable uniqueCards = CardDb.instance().getAllUniqueCards(); - final List cards = new ArrayList(); - for (final CardPrinted c : uniqueCards) { - cards.add(c.getName()); - } - Collections.sort(cards); - - // use standard forge's list selection dialog - final ListChooser c = new ListChooser("Name the card", 0, 1, cards); - if (c.show()) { - CardPrinted cp = CardDb.instance().getCard(c.getSelectedValue()); - Card forgeCard = cp.toForgeCard(AllZone.getHumanPlayer()); - Singletons.getModel().getGameAction().moveToHand(forgeCard); - } - } - - /** - *

- * devModeAddCounter. - *

- * - * @since 1.0.15 - */ - public static void devModeAddCounter() { - final CardList play = AllZoneUtil.getCardsIn(Zone.Battlefield); - final Object o = GuiUtils.chooseOneOrNone("Add counters to which card?", play.toArray()); - if (null == o) { - return; - } else { - final Card c = (Card) o; - final Counters counter = GuiUtils.chooseOneOrNone("Which type of counter?", Counters.values()); - if (null == counter) { - return; - } else { - final Integer[] integers = new Integer[99]; - for (int j = 0; j < 99; j++) { - integers[j] = Integer.valueOf(j); - } - final Integer i = GuiUtils.chooseOneOrNone("How many counters?", integers); - if (null == i) { - return; - } else { - c.addCounterFromNonEffect(counter, i); - } - } - } - } - - /** - *

- * devModeTapPerm. - *

- * - * @since 1.0.15 - */ - public static void devModeTapPerm() { - final CardList play = AllZoneUtil.getCardsIn(Zone.Battlefield); - final Object o = GuiUtils.chooseOneOrNone("Choose a permanent", play.toArray()); - if (null == o) { - return; - } else { - final Card c = (Card) o; - c.tap(); - } - } - - /** - *

- * devModeUntapPerm. - *

- * - * @since 1.0.15 - */ - public static void devModeUntapPerm() { - final CardList play = AllZoneUtil.getCardsIn(Zone.Battlefield); - final Object o = GuiUtils.chooseOneOrNone("Choose a permanent", play.toArray()); - if (null == o) { - return; - } else { - final Card c = (Card) o; - c.untap(); - } - } - - /** - *

- * devModeUnlimitedLand. - *

- * - * @since 1.0.16 - */ - public static void devModeUnlimitedLand() { - AllZone.getHumanPlayer().addMaxLandsToPlay(100); - } - - /** - *

- * devModeSetLife. - *

- * - * @since 1.1.3 - */ - public static void devModeSetLife() { - final List players = AllZone.getPlayersInGame(); - final Object o = GuiUtils.chooseOneOrNone("Set life for which player?", players.toArray()); - if (null == o) { - return; - } else { - final Player p = (Player) o; - final Integer[] integers = new Integer[99]; - for (int j = 0; j < 99; j++) { - integers[j] = Integer.valueOf(j); - } - final Integer i = GuiUtils.chooseOneOrNone("Set life to what?", integers); - if (null == i) { - return; - } else { - p.setLife(i, null); - } - } - } - -} // end class GuiDisplayUtil diff --git a/src/main/java/forge/ImageCache.java b/src/main/java/forge/ImageCache.java index 583b693a510..74a6149dc45 100644 --- a/src/main/java/forge/ImageCache.java +++ b/src/main/java/forge/ImageCache.java @@ -35,6 +35,7 @@ import com.google.common.collect.ComputationException; import com.google.common.util.concurrent.UncheckedExecutionException; import com.mortennobel.imagescaling.ResampleOp; +import forge.gui.GuiDisplayUtil; import forge.item.InventoryItem; import forge.properties.ForgePreferences.FPref; import forge.properties.ForgeProps; diff --git a/src/main/java/forge/MagicStack.java b/src/main/java/forge/MagicStack.java index 00fb4135050..b154d395bc0 100644 --- a/src/main/java/forge/MagicStack.java +++ b/src/main/java/forge/MagicStack.java @@ -48,7 +48,9 @@ import forge.game.phase.PhaseType; import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.gui.GuiDisplayUtil; import forge.gui.GuiUtils; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java index 0e1056372b8..4b43378a51b 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryCounters.java @@ -25,7 +25,6 @@ import java.util.Random; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardListFilter; @@ -49,6 +48,7 @@ import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; import forge.util.MyRandom; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/cardfactory/AbstractCardFactory.java b/src/main/java/forge/card/cardfactory/AbstractCardFactory.java index 38278830aad..561bc1808b2 100644 --- a/src/main/java/forge/card/cardfactory/AbstractCardFactory.java +++ b/src/main/java/forge/card/cardfactory/AbstractCardFactory.java @@ -30,7 +30,6 @@ import javax.swing.JOptionPane; import net.slightlymagic.braids.util.ImmutableIterableFrom; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardCharactersticName; import forge.CardList; @@ -61,6 +60,7 @@ import forge.gui.GuiUtils; import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.util.FileUtil; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java index 9ae97ac63e8..37fda069da1 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java @@ -27,7 +27,6 @@ import com.esotericsoftware.minlog.Log; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardCharactersticName; import forge.CardList; @@ -56,6 +55,7 @@ import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; import forge.util.MyRandom; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/cardfactory/CardFactoryLands.java b/src/main/java/forge/card/cardfactory/CardFactoryLands.java index aca5d8f7f14..cb87cdb0d26 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryLands.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryLands.java @@ -21,7 +21,6 @@ import javax.swing.JOptionPane; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardListFilter; @@ -42,6 +41,7 @@ import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; import forge.util.MyRandom; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/cardfactory/CardFactorySorceries.java b/src/main/java/forge/card/cardfactory/CardFactorySorceries.java index ee082dc3605..d953008e271 100644 --- a/src/main/java/forge/card/cardfactory/CardFactorySorceries.java +++ b/src/main/java/forge/card/cardfactory/CardFactorySorceries.java @@ -28,7 +28,6 @@ import com.esotericsoftware.minlog.Log; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardListFilter; @@ -52,6 +51,7 @@ import forge.game.player.Player; import forge.game.player.PlayerUtil; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index a1605ec94f3..bbf5ca68d99 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -30,7 +30,6 @@ import com.esotericsoftware.minlog.Log; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardCharactersticName; import forge.CardList; @@ -70,6 +69,7 @@ import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; import forge.util.MyRandom; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/cost/CostDiscard.java b/src/main/java/forge/card/cost/CostDiscard.java index 0f2be885a0c..c2614c2c447 100644 --- a/src/main/java/forge/card/cost/CostDiscard.java +++ b/src/main/java/forge/card/cost/CostDiscard.java @@ -18,7 +18,6 @@ package forge.card.cost; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardListUtil; @@ -31,6 +30,7 @@ import forge.control.input.Input; import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** * The Class CostDiscard. diff --git a/src/main/java/forge/card/cost/CostExile.java b/src/main/java/forge/card/cost/CostExile.java index 5d1e6b2bd26..877fc64f256 100644 --- a/src/main/java/forge/card/cost/CostExile.java +++ b/src/main/java/forge/card/cost/CostExile.java @@ -22,7 +22,6 @@ import java.util.Iterator; import javax.swing.JOptionPane; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant; @@ -36,6 +35,7 @@ import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; +import forge.view.ButtonUtil; /** * The Class CostExile. diff --git a/src/main/java/forge/card/cost/CostMana.java b/src/main/java/forge/card/cost/CostMana.java index 41762ea7405..878f3dd3ec6 100644 --- a/src/main/java/forge/card/cost/CostMana.java +++ b/src/main/java/forge/card/cost/CostMana.java @@ -20,7 +20,6 @@ package forge.card.cost; import com.google.common.base.Strings; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.Constant.Zone; import forge.Singletons; @@ -35,6 +34,7 @@ import forge.game.phase.PhaseHandler; import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** * The Class CostMana. diff --git a/src/main/java/forge/card/cost/CostPutCounter.java b/src/main/java/forge/card/cost/CostPutCounter.java index dda985d818a..16241b3378d 100644 --- a/src/main/java/forge/card/cost/CostPutCounter.java +++ b/src/main/java/forge/card/cost/CostPutCounter.java @@ -17,7 +17,6 @@ */ package forge.card.cost; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant.Zone; @@ -29,6 +28,7 @@ import forge.card.spellability.SpellAbility; import forge.control.input.Input; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** * The Class CostPutCounter. diff --git a/src/main/java/forge/card/cost/CostReturn.java b/src/main/java/forge/card/cost/CostReturn.java index db7670b1c20..72ab989eccb 100644 --- a/src/main/java/forge/card/cost/CostReturn.java +++ b/src/main/java/forge/card/cost/CostReturn.java @@ -20,7 +20,6 @@ package forge.card.cost; import javax.swing.JOptionPane; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant.Zone; @@ -31,6 +30,7 @@ import forge.control.input.Input; import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** * The Class CostReturn. diff --git a/src/main/java/forge/card/cost/CostReveal.java b/src/main/java/forge/card/cost/CostReveal.java index cc2400eb92f..2c847d64f38 100644 --- a/src/main/java/forge/card/cost/CostReveal.java +++ b/src/main/java/forge/card/cost/CostReveal.java @@ -18,7 +18,6 @@ package forge.card.cost; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant; @@ -31,6 +30,7 @@ import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; +import forge.view.ButtonUtil; /** * The Class CostReveal. diff --git a/src/main/java/forge/card/cost/CostSacrifice.java b/src/main/java/forge/card/cost/CostSacrifice.java index 7c52f920611..8b11526aca8 100644 --- a/src/main/java/forge/card/cost/CostSacrifice.java +++ b/src/main/java/forge/card/cost/CostSacrifice.java @@ -20,7 +20,6 @@ package forge.card.cost; import javax.swing.JOptionPane; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant.Zone; @@ -31,6 +30,7 @@ import forge.control.input.Input; import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** * The Class CostSacrifice. diff --git a/src/main/java/forge/card/cost/CostTapType.java b/src/main/java/forge/card/cost/CostTapType.java index 4d166118201..806f19ed683 100644 --- a/src/main/java/forge/card/cost/CostTapType.java +++ b/src/main/java/forge/card/cost/CostTapType.java @@ -17,7 +17,6 @@ */ package forge.card.cost; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardListFilter; @@ -30,6 +29,7 @@ import forge.control.input.Input; import forge.game.player.ComputerUtil; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** * The Class CostTapType. diff --git a/src/main/java/forge/card/spellability/AbilityTriggered.java b/src/main/java/forge/card/spellability/AbilityTriggered.java index 6e17daa8444..faa1f0612d9 100644 --- a/src/main/java/forge/card/spellability/AbilityTriggered.java +++ b/src/main/java/forge/card/spellability/AbilityTriggered.java @@ -23,8 +23,8 @@ import forge.Card; import forge.CardCharactersticName; import forge.CardList; import forge.Command; -import forge.ZCTrigger; import forge.card.CardCharacteristics; +import forge.card.trigger.ZCTrigger; /** *

@@ -79,7 +79,7 @@ public class AbilityTriggered extends Ability implements Command { * @param sourceCommand * a {@link forge.Command} object. * @param situation - * a {@link forge.ZCTrigger} object. + * a {@link forge.card.trigger.ZCTrigger} object. */ public AbilityTriggered(final Card sourceCard, final Command sourceCommand, final ZCTrigger situation) { super(sourceCard, "0"); diff --git a/src/main/java/forge/card/spellability/SpellPermanent.java b/src/main/java/forge/card/spellability/SpellPermanent.java index 8ae91ef0d9e..35c9cd97708 100644 --- a/src/main/java/forge/card/spellability/SpellPermanent.java +++ b/src/main/java/forge/card/spellability/SpellPermanent.java @@ -21,7 +21,6 @@ import java.util.HashMap; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardUtil; @@ -40,6 +39,7 @@ import forge.game.phase.PhaseType; import forge.game.player.ComputerAIGeneral; import forge.game.player.ComputerUtil; import forge.game.player.Player; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/card/spellability/TargetSelection.java b/src/main/java/forge/card/spellability/TargetSelection.java index e9454cc8c25..fc1911e64b0 100644 --- a/src/main/java/forge/card/spellability/TargetSelection.java +++ b/src/main/java/forge/card/spellability/TargetSelection.java @@ -23,7 +23,6 @@ import java.util.List; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant; @@ -34,6 +33,7 @@ import forge.control.input.Input; import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/ZCTrigger.java b/src/main/java/forge/card/trigger/ZCTrigger.java similarity index 96% rename from src/main/java/forge/ZCTrigger.java rename to src/main/java/forge/card/trigger/ZCTrigger.java index 46e28489a1e..23fa49e2e6f 100644 --- a/src/main/java/forge/ZCTrigger.java +++ b/src/main/java/forge/card/trigger/ZCTrigger.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.card.trigger; /** *

@@ -84,7 +84,7 @@ public enum ZCTrigger { * * @param description * a {@link java.lang.String} object. - * @return a {@link forge.ZCTrigger} object. + * @return a {@link forge.card.trigger.ZCTrigger} object. */ public static ZCTrigger getTrigger(final String description) { for (final ZCTrigger t : ZCTrigger.values()) { diff --git a/src/main/java/forge/control/ControlMatchUI.java b/src/main/java/forge/control/ControlMatchUI.java index c497d3834e8..8af3fba7bb1 100644 --- a/src/main/java/forge/control/ControlMatchUI.java +++ b/src/main/java/forge/control/ControlMatchUI.java @@ -29,7 +29,6 @@ import forge.Card; import forge.CardList; import forge.Constant; import forge.Constant.Zone; -import forge.GuiMultipleBlockers; import forge.Singletons; import forge.control.match.ControlDetail; import forge.control.match.ControlDock; @@ -42,6 +41,7 @@ import forge.game.GameType; import forge.game.phase.PhaseType; import forge.game.player.Player; import forge.gui.CardContainer; +import forge.gui.GuiMultipleBlockers; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; import forge.properties.ForgePreferences.FPref; diff --git a/src/main/java/forge/control/input/InputAttack.java b/src/main/java/forge/control/input/InputAttack.java index ac97b059797..2f715a47f1f 100644 --- a/src/main/java/forge/control/input/InputAttack.java +++ b/src/main/java/forge/control/input/InputAttack.java @@ -18,13 +18,13 @@ package forge.control.input; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant; import forge.Constant.Zone; import forge.game.phase.CombatUtil; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; import forge.Singletons; /** diff --git a/src/main/java/forge/control/input/InputBlock.java b/src/main/java/forge/control/input/InputBlock.java index c4ad5f10690..d053b26be04 100644 --- a/src/main/java/forge/control/input/InputBlock.java +++ b/src/main/java/forge/control/input/InputBlock.java @@ -20,12 +20,12 @@ package forge.control.input; import java.util.ArrayList; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.Constant; import forge.Singletons; import forge.game.phase.CombatUtil; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/control/input/InputCleanup.java b/src/main/java/forge/control/input/InputCleanup.java index f3f1242a983..559031fc19e 100644 --- a/src/main/java/forge/control/input/InputCleanup.java +++ b/src/main/java/forge/control/input/InputCleanup.java @@ -18,12 +18,12 @@ package forge.control.input; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.Constant; import forge.Constant.Zone; import forge.game.phase.CombatUtil; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; import forge.Singletons; /** diff --git a/src/main/java/forge/control/input/InputMulligan.java b/src/main/java/forge/control/input/InputMulligan.java index 49ace6db941..f6daa918f7e 100644 --- a/src/main/java/forge/control/input/InputMulligan.java +++ b/src/main/java/forge/control/input/InputMulligan.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.Constant; @@ -39,6 +38,7 @@ import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.quest.QuestController; import forge.quest.bazaar.QuestItemType; +import forge.view.ButtonUtil; /** *

* InputMulligan class. diff --git a/src/main/java/forge/control/input/InputPassPriority.java b/src/main/java/forge/control/input/InputPassPriority.java index aaa314cf05f..107345fb688 100644 --- a/src/main/java/forge/control/input/InputPassPriority.java +++ b/src/main/java/forge/control/input/InputPassPriority.java @@ -18,13 +18,13 @@ package forge.control.input; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; -import forge.GuiDisplayUtil; import forge.Singletons; import forge.game.phase.PhaseType; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.gui.GuiDisplayUtil; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/control/input/InputPayManaCost.java b/src/main/java/forge/control/input/InputPayManaCost.java index e3878cbc243..79093a40e88 100644 --- a/src/main/java/forge/control/input/InputPayManaCost.java +++ b/src/main/java/forge/control/input/InputPayManaCost.java @@ -18,7 +18,6 @@ package forge.control.input; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.Constant.Zone; import forge.Singletons; @@ -28,6 +27,7 @@ import forge.card.trigger.TriggerType; import forge.game.phase.PhaseHandler; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; //pays the cost of a card played from the player's hand //the card is removed from the players hand if the cost is paid diff --git a/src/main/java/forge/control/input/InputPayManaCostAbility.java b/src/main/java/forge/control/input/InputPayManaCostAbility.java index 8ae311c208e..123387abc48 100644 --- a/src/main/java/forge/control/input/InputPayManaCostAbility.java +++ b/src/main/java/forge/control/input/InputPayManaCostAbility.java @@ -18,7 +18,6 @@ package forge.control.input; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.Command; import forge.Constant.Zone; @@ -26,6 +25,7 @@ import forge.Singletons; import forge.card.mana.ManaCost; import forge.card.spellability.SpellAbility; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; //if cost is paid, Command.execute() is called diff --git a/src/main/java/forge/control/match/ControlField.java b/src/main/java/forge/control/match/ControlField.java index 89d505ac6e6..f1f81ac8cd9 100644 --- a/src/main/java/forge/control/match/ControlField.java +++ b/src/main/java/forge/control/match/ControlField.java @@ -37,7 +37,6 @@ import forge.Card; import forge.CardList; import forge.Constant; import forge.Constant.Zone; -import forge.GuiDisplayUtil; import forge.Singletons; import forge.card.cardfactory.CardFactoryUtil; import forge.control.input.Input; @@ -49,6 +48,7 @@ import forge.control.input.InputPayManaCostAbility; import forge.game.player.Player; import forge.game.player.PlayerZone; import forge.gui.ForgeAction; +import forge.gui.GuiDisplayUtil; import forge.gui.GuiUtils; import forge.gui.toolbox.FLabel; import forge.properties.ForgeProps; diff --git a/src/main/java/forge/control/match/ControlMessage.java b/src/main/java/forge/control/match/ControlMessage.java index 000436e7456..d8e191ff119 100644 --- a/src/main/java/forge/control/match/ControlMessage.java +++ b/src/main/java/forge/control/match/ControlMessage.java @@ -21,8 +21,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import forge.Constant; -import forge.GuiInput; import forge.Singletons; +import forge.gui.GuiInput; import forge.view.match.ViewMessage; /** diff --git a/src/main/java/forge/control/match/ControlTabber.java b/src/main/java/forge/control/match/ControlTabber.java index 28b8cd66d93..870d8ae7818 100644 --- a/src/main/java/forge/control/match/ControlTabber.java +++ b/src/main/java/forge/control/match/ControlTabber.java @@ -24,9 +24,9 @@ import java.util.Observable; import java.util.Observer; import forge.AllZone; -import forge.GuiDisplayUtil; import forge.MyObservable; import forge.Singletons; +import forge.gui.GuiDisplayUtil; import forge.properties.ForgePreferences.FPref; import forge.view.match.ViewTabber; diff --git a/src/main/java/forge/game/phase/Untap.java b/src/main/java/forge/game/phase/Untap.java index 8b1a9e36b79..a08d37874ba 100644 --- a/src/main/java/forge/game/phase/Untap.java +++ b/src/main/java/forge/game/phase/Untap.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardListFilter; @@ -35,6 +34,7 @@ import forge.card.cardfactory.CardFactoryUtil; import forge.control.input.Input; import forge.game.player.Player; import forge.game.player.PlayerZone; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/game/phase/Upkeep.java b/src/main/java/forge/game/phase/Upkeep.java index 5c0042fd474..779909232d5 100644 --- a/src/main/java/forge/game/phase/Upkeep.java +++ b/src/main/java/forge/game/phase/Upkeep.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import forge.AllZone; import forge.AllZoneUtil; -import forge.ButtonUtil; import forge.Card; import forge.CardCharactersticName; import forge.CardList; @@ -46,6 +45,7 @@ import forge.game.player.Player; import forge.game.player.PlayerUtil; import forge.game.player.PlayerZone; import forge.gui.GuiUtils; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/game/player/ComputerAIGeneral.java b/src/main/java/forge/game/player/ComputerAIGeneral.java index d4878be9109..24880adb1d7 100644 --- a/src/main/java/forge/game/player/ComputerAIGeneral.java +++ b/src/main/java/forge/game/player/ComputerAIGeneral.java @@ -27,7 +27,6 @@ import forge.AllZone; import forge.AllZoneUtil; import forge.Card; import forge.CardList; -import forge.ComputerUtilBlock; import forge.Singletons; import forge.Constant.Zone; import forge.card.abilityfactory.AbilityFactory; diff --git a/src/main/java/forge/game/player/ComputerUtil.java b/src/main/java/forge/game/player/ComputerUtil.java index 64b12ae366a..b6f68ba5e6d 100644 --- a/src/main/java/forge/game/player/ComputerUtil.java +++ b/src/main/java/forge/game/player/ComputerUtil.java @@ -29,7 +29,6 @@ import forge.CardList; import forge.CardListFilter; import forge.CardListUtil; import forge.CardUtil; -import forge.ComputerUtilBlock; import forge.Constant; import forge.GameAction; import forge.Singletons; diff --git a/src/main/java/forge/ComputerUtilBlock.java b/src/main/java/forge/game/player/ComputerUtilBlock.java similarity index 99% rename from src/main/java/forge/ComputerUtilBlock.java rename to src/main/java/forge/game/player/ComputerUtilBlock.java index 8c2ea601ebd..39631196d80 100644 --- a/src/main/java/forge/ComputerUtilBlock.java +++ b/src/main/java/forge/game/player/ComputerUtilBlock.java @@ -15,10 +15,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.game.player; import java.util.List; +import forge.AllZone; +import forge.Card; +import forge.CardList; +import forge.CardListFilter; +import forge.CardListUtil; +import forge.Counters; +import forge.GameEntity; import forge.card.cardfactory.CardFactoryUtil; import forge.game.phase.Combat; import forge.game.phase.CombatUtil; diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 8be3ba0063f..696a815ee29 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -39,8 +39,6 @@ import forge.GameActionUtil; import forge.GameEntity; import forge.HandSizeOp; import forge.Singletons; -import forge.Constant.Color; -import forge.Constant.Runtime; import forge.Constant.Zone; import forge.card.cardfactory.CardFactoryUtil; import forge.card.mana.ManaPool; diff --git a/src/main/java/forge/game/player/PlayerUtil.java b/src/main/java/forge/game/player/PlayerUtil.java index 93a2346611e..1e9318ceee5 100644 --- a/src/main/java/forge/game/player/PlayerUtil.java +++ b/src/main/java/forge/game/player/PlayerUtil.java @@ -18,7 +18,6 @@ package forge.game.player; import forge.AllZone; -import forge.ButtonUtil; import forge.Card; import forge.CardList; import forge.CardListFilter; @@ -27,6 +26,7 @@ import forge.Singletons; import forge.Constant.Zone; import forge.card.spellability.SpellAbility; import forge.control.input.Input; +import forge.view.ButtonUtil; /** *

diff --git a/src/main/java/forge/gui/GuiDisplayUtil.java b/src/main/java/forge/gui/GuiDisplayUtil.java new file mode 100644 index 00000000000..171279085b9 --- /dev/null +++ b/src/main/java/forge/gui/GuiDisplayUtil.java @@ -0,0 +1,809 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.gui; + +import java.awt.Color; +import java.io.BufferedReader; +import java.io.DataInputStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.swing.BorderFactory; +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; +import javax.swing.border.Border; + +import arcane.ui.PlayArea; +import arcane.ui.util.Animation; +import forge.AllZone; +import forge.AllZoneUtil; +import forge.Card; +import forge.CardCharactersticName; +import forge.CardList; +import forge.CardUtil; +import forge.Constant; +import forge.Counters; +import forge.Singletons; +import forge.Constant.Zone; +import forge.card.cardfactory.CardFactoryUtil; +import forge.card.spellability.AbilityMana; +import forge.card.trigger.TriggerType; +import forge.game.player.Player; +import forge.gui.game.CardPanel; +import forge.item.CardDb; +import forge.item.CardPrinted; + +/** + *

+ * GuiDisplayUtil class. + *

+ * + * @author Forge + * @version $Id$ + */ +public final class GuiDisplayUtil { + + private GuiDisplayUtil() { + throw new AssertionError(); + } + + /** + *

+ * getBorder. + *

+ * + * @param card + * a {@link forge.Card} object. + * @return a {@link javax.swing.border.Border} object. + */ + public static Border getBorder(final Card card) { + // color info + if (card == null) { + return BorderFactory.createEmptyBorder(2, 2, 2, 2); + } + java.awt.Color color; + final ArrayList list = CardUtil.getColors(card); + + if (card.isFaceDown()) { + color = Color.gray; + } else if (list.size() > 1) { + color = Color.orange; + } else if (list.get(0).equals(Constant.Color.BLACK)) { + color = Color.black; + } else if (list.get(0).equals(Constant.Color.GREEN)) { + color = new Color(0, 220, 39); + } else if (list.get(0).equals(Constant.Color.WHITE)) { + color = Color.white; + } else if (list.get(0).equals(Constant.Color.RED)) { + color = Color.red; + } else if (list.get(0).equals(Constant.Color.BLUE)) { + color = Color.blue; + } else if (list.get(0).equals(Constant.Color.COLORLESS)) { + color = Color.gray; + } else { + color = new Color(200, 0, 230); // If your card has a violet border, + // something is wrong + } + + if (color != Color.gray) { + + int r = color.getRed(); + int g = color.getGreen(); + int b = color.getBlue(); + + final int shade = 10; + + r -= shade; + g -= shade; + b -= shade; + + r = Math.max(0, r); + g = Math.max(0, g); + b = Math.max(0, b); + + color = new Color(r, g, b); + + return BorderFactory.createLineBorder(color, 2); + } else { + return BorderFactory.createLineBorder(Color.gray, 2); + } + } + + /** + *

+ * devModeGenerateMana. + *

+ */ + public static void devModeGenerateMana() { + final Card dummy = new Card(); + dummy.setOwner(AllZone.getHumanPlayer()); + dummy.addController(AllZone.getHumanPlayer()); + final AbilityMana abMana = new AbilityMana(dummy, "0", "W U B G R 1", 10) { + private static final long serialVersionUID = -2164401486331182356L; + + }; + abMana.produceMana(); + } + + /** + *

+ * formatCardType. + *

+ * + * @param card + * a {@link forge.Card} object. + * @return a {@link java.lang.String} object. + */ + public static String formatCardType(final Card card) { + final ArrayList list = card.getType(); + final StringBuilder sb = new StringBuilder(); + + final ArrayList superTypes = new ArrayList(); + final ArrayList cardTypes = new ArrayList(); + final ArrayList subTypes = new ArrayList(); + final boolean allCreatureTypes = list.contains("AllCreatureTypes"); + + for (final String t : list) { + if (allCreatureTypes && t.equals("AllCreatureTypes")) { + continue; + } + if (CardUtil.isASuperType(t) && !superTypes.contains(t)) { + superTypes.add(t); + } + if (CardUtil.isACardType(t) && !cardTypes.contains(t)) { + cardTypes.add(t); + } + if (CardUtil.isASubType(t) && !subTypes.contains(t) && (!allCreatureTypes || !CardUtil.isACreatureType(t))) { + subTypes.add(t); + } + } + + for (final String type : superTypes) { + sb.append(type).append(" "); + } + for (final String type : cardTypes) { + sb.append(type).append(" "); + } + if (!subTypes.isEmpty() || allCreatureTypes) { + sb.append("- "); + } + if (allCreatureTypes) { + sb.append("All creature types "); + } + for (final String type : subTypes) { + sb.append(type).append(" "); + } + + return sb.toString(); + } + + /** + *

+ * cleanString. + *

+ * + * @param in + * a {@link java.lang.String} object. + * @return a {@link java.lang.String} object. + */ + public static String cleanString(final String in) { + final StringBuffer out = new StringBuffer(); + char c; + for (int i = 0; i < in.length(); i++) { + c = in.charAt(i); + if ((c == ' ') || (c == '-')) { + out.append('_'); + } else if (Character.isLetterOrDigit(c) || (c == '_')) { + out.append(c); + } + } + return out.toString().toLowerCase(); + } + + /** + *

+ * cleanStringMWS. + *

+ * + * @param in + * a {@link java.lang.String} object. + * @return a {@link java.lang.String} object. + */ + public static String cleanStringMWS(final String in) { + final StringBuffer out = new StringBuffer(); + char c; + for (int i = 0; i < in.length(); i++) { + c = in.charAt(i); + if ((c == '"') || (c == '/')) { + out.append(""); + } else { + out.append(c); + } + } + return out.toString(); + } + + + + /** + *

+ * isStackable. + *

+ * + * @param c + * a {@link forge.Card} object. + * @return a boolean. + */ + public static boolean isStackable(final Card c) { + if (c.isLand() || (c.getName().startsWith("Mox") && !c.getName().equals("Mox Diamond")) + || (c.isLand() && c.isEnchanted()) || (c.isAura() && c.isEnchanting()) + || (c.isToken() && CardFactoryUtil.multipleControlled(c)) + || (c.isCreature() && (c.isEquipped() || c.isEnchanted())) || (c.isEquipment() && c.isEquipping()) + || (c.isEnchantment())) { + return true; + } + + return false; + } + + // ~ + /** + *

+ * setupConnectedCards. + *

+ * + * @param connectedCards + * a {@link java.util.ArrayList} object. + */ + public static void setupConnectedCards(final ArrayList connectedCards) { + for (int i = connectedCards.size() - 1; i > 0; i--) { + // System.out.println("We should have a stack"); + final CardPanel cp = connectedCards.get(i); + cp.setConnectedCard(connectedCards.get(i - 1)); + } + } + + // ~ + + /** + *

+ * setupPlayZone. + *

+ * + * @param p + * a {@link arcane.ui.PlayArea} object. + * @param c + * an array of {@link forge.Card} objects. + */ + public static void setupPlayZone(final PlayArea p, final List c) { + List tmp, diff; + tmp = new ArrayList(); + for (final arcane.ui.CardPanel cpa : p.getCardPanels()) { + tmp.add(cpa.getGameCard()); + } + diff = new ArrayList(tmp); + diff.removeAll(c); + if (diff.size() == p.getCardPanels().size()) { + p.clear(); + } else { + for (final Card card : diff) { + p.removeCardPanel(p.getCardPanel(card.getUniqueNumber())); + } + } + diff = new ArrayList(c); + diff.removeAll(tmp); + + arcane.ui.CardPanel toPanel = null; + for (final Card card : diff) { + toPanel = p.addCard(card); + Animation.moveCard(toPanel); + } + + for (final Card card : c) { + toPanel = p.getCardPanel(card.getUniqueNumber()); + if (card.isTapped()) { + toPanel.setTapped(true); + toPanel.setTappedAngle(arcane.ui.CardPanel.TAPPED_ANGLE); + } else { + toPanel.setTapped(false); + toPanel.setTappedAngle(0); + } + toPanel.getAttachedPanels().clear(); + if (card.isEnchanted()) { + final ArrayList enchants = card.getEnchantedBy(); + for (final Card e : enchants) { + final arcane.ui.CardPanel cardE = p.getCardPanel(e.getUniqueNumber()); + if (cardE != null) { + toPanel.getAttachedPanels().add(cardE); + } + } + } + + if (card.isEquipped()) { + final ArrayList enchants = card.getEquippedBy(); + for (final Card e : enchants) { + final arcane.ui.CardPanel cardE = p.getCardPanel(e.getUniqueNumber()); + if (cardE != null) { + toPanel.getAttachedPanels().add(cardE); + } + } + } + + if (card.isEnchantingCard()) { + toPanel.setAttachedToPanel(p.getCardPanel(card.getEnchantingCard().getUniqueNumber())); + } else if (card.isEquipping()) { + toPanel.setAttachedToPanel(p.getCardPanel(card.getEquipping().get(0).getUniqueNumber())); + } else { + toPanel.setAttachedToPanel(null); + } + + toPanel.setCard(toPanel.getGameCard()); + } + p.invalidate(); + p.repaint(); + } + + /** + *

+ * updateGUI. + *

+ */ + public static void updateGUI() { + AllZone.getComputerPlayer().getZone(Zone.Battlefield).updateObservers(); + AllZone.getHumanPlayer().getZone(Zone.Battlefield).updateObservers(); + //AllZone.getHumanPlayer().getZone(Zone.Hand).updateObservers(); + AllZone.getComputerPlayer().updateObservers(); + AllZone.getHumanPlayer().updateObservers(); + } + + /** + *

+ * devSetupGameState. + *

+ */ + public static void devSetupGameState() { + String tHumanLife = "-1"; + String tComputerLife = "-1"; + String tHumanSetupCardsInPlay = "NONE"; + String tComputerSetupCardsInPlay = "NONE"; + String tHumanSetupCardsInHand = "NONE"; + String tComputerSetupCardsInHand = "NONE"; + String tHumanSetupGraveyard = "NONE"; + String tComputerSetupGraveyard = "NONE"; + String tHumanSetupLibrary = "NONE"; + String tComputerSetupLibrary = "NONE"; + String tHumanSetupExile = "NONE"; + String tComputerSetupExile = "NONE"; + String tChangePlayer = "NONE"; + String tChangePhase = "NONE"; + + final String wd = "."; + final JFileChooser fc = new JFileChooser(wd); + final int rc = fc.showDialog(null, "Select Game State File"); + if (rc != JFileChooser.APPROVE_OPTION) { + return; + } + + try { + final FileInputStream fstream = new FileInputStream(fc.getSelectedFile().getAbsolutePath()); + final DataInputStream in = new DataInputStream(fstream); + final BufferedReader br = new BufferedReader(new InputStreamReader(in)); + + String temp = ""; + + while ((temp = br.readLine()) != null) { + final String[] tempData = temp.split("="); + + if (tempData.length < 2) { + continue; + } + if (tempData[0].toCharArray()[0] == '#') { + continue; + } + + final String categoryName = tempData[0]; + final String categoryValue = tempData[1]; + + if (categoryName.toLowerCase().equals("humanlife")) { + tHumanLife = categoryValue; + } else if (categoryName.toLowerCase().equals("ailife")) { + tComputerLife = categoryValue; + } else if (categoryName.toLowerCase().equals("humancardsinplay")) { + tHumanSetupCardsInPlay = categoryValue; + } else if (categoryName.toLowerCase().equals("aicardsinplay")) { + tComputerSetupCardsInPlay = categoryValue; + } else if (categoryName.toLowerCase().equals("humancardsinhand")) { + tHumanSetupCardsInHand = categoryValue; + } else if (categoryName.toLowerCase().equals("aicardsinhand")) { + tComputerSetupCardsInHand = categoryValue; + } else if (categoryName.toLowerCase().equals("humancardsingraveyard")) { + tHumanSetupGraveyard = categoryValue; + } else if (categoryName.toLowerCase().equals("aicardsingraveyard")) { + tComputerSetupGraveyard = categoryValue; + } else if (categoryName.toLowerCase().equals("humancardsinlibrary")) { + tHumanSetupLibrary = categoryValue; + } else if (categoryName.toLowerCase().equals("aicardsinlibrary")) { + tComputerSetupLibrary = categoryValue; + } else if (categoryName.toLowerCase().equals("humancardsinexile")) { + tHumanSetupExile = categoryValue; + } else if (categoryName.toLowerCase().equals("aicardsinexile")) { + tComputerSetupExile = categoryValue; + } else if (categoryName.toLowerCase().equals("activeplayer")) { + tChangePlayer = categoryValue; + } else if (categoryName.toLowerCase().equals("activephase")) { + tChangePhase = categoryValue; + } + } + + in.close(); + } catch (final FileNotFoundException fnfe) { + JOptionPane.showMessageDialog(null, "File not found: " + fc.getSelectedFile().getAbsolutePath()); + } catch (final Exception e) { + JOptionPane.showMessageDialog(null, "Error loading battle setup file!"); + return; + } + + final int setHumanLife = Integer.parseInt(tHumanLife); + final int setComputerLife = Integer.parseInt(tComputerLife); + + final String[] humanSetupCardsInPlay = tHumanSetupCardsInPlay.split(";"); + final String[] computerSetupCardsInPlay = tComputerSetupCardsInPlay.split(";"); + final String[] humanSetupCardsInHand = tHumanSetupCardsInHand.split(";"); + final String[] computerSetupCardsInHand = tComputerSetupCardsInHand.split(";"); + final String[] humanSetupGraveyard = tHumanSetupGraveyard.split(";"); + final String[] computerSetupGraveyard = tComputerSetupGraveyard.split(";"); + final String[] humanSetupLibrary = tHumanSetupLibrary.split(";"); + final String[] computerSetupLibrary = tComputerSetupLibrary.split(";"); + final String[] humanSetupExile = tHumanSetupExile.split(";"); + final String[] computerSetupExile = tComputerSetupExile.split(";"); + + CardList humanDevSetup = new CardList(); + CardList computerDevSetup = new CardList(); + CardList humanDevHandSetup = new CardList(); + CardList computerDevHandSetup = new CardList(); + CardList humanDevGraveyardSetup = new CardList(); + CardList computerDevGraveyardSetup = new CardList(); + CardList humanDevLibrarySetup = new CardList(); + CardList computerDevLibrarySetup = new CardList(); + CardList humanDevExileSetup = new CardList(); + CardList computerDevExileSetup = new CardList(); + + if (!tChangePlayer.trim().toLowerCase().equals("none")) { + if (tChangePlayer.trim().toLowerCase().equals("human")) { + Singletons.getModel().getGameState().getPhaseHandler().setPlayerTurn(AllZone.getHumanPlayer()); + } + if (tChangePlayer.trim().toLowerCase().equals("ai")) { + Singletons.getModel().getGameState().getPhaseHandler().setPlayerTurn(AllZone.getComputerPlayer()); + } + } + + if (!tChangePhase.trim().toLowerCase().equals("none")) { + Singletons.getModel().getGameState().getPhaseHandler().setDevPhaseState(forge.game.phase.PhaseType.smartValueOf(tChangePhase)); + } + + if (!tHumanSetupCardsInPlay.trim().toLowerCase().equals("none")) { + humanDevSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupCardsInPlay, AllZone.getHumanPlayer()); + } + + if (!tHumanSetupCardsInHand.trim().toLowerCase().equals("none")) { + humanDevHandSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupCardsInHand, AllZone.getHumanPlayer()); + } + + if (!tComputerSetupCardsInPlay.trim().toLowerCase().equals("none")) { + computerDevSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupCardsInPlay, + AllZone.getComputerPlayer()); + } + + if (!tComputerSetupCardsInHand.trim().toLowerCase().equals("none")) { + computerDevHandSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupCardsInHand, + AllZone.getComputerPlayer()); + } + + if (!tComputerSetupGraveyard.trim().toLowerCase().equals("none")) { + computerDevGraveyardSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupGraveyard, + AllZone.getComputerPlayer()); + } + + if (!tHumanSetupGraveyard.trim().toLowerCase().equals("none")) { + humanDevGraveyardSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupGraveyard, + AllZone.getHumanPlayer()); + } + + if (!tHumanSetupLibrary.trim().toLowerCase().equals("none")) { + humanDevLibrarySetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupLibrary, AllZone.getHumanPlayer()); + } + + if (!tComputerSetupLibrary.trim().toLowerCase().equals("none")) { + computerDevLibrarySetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupLibrary, + AllZone.getComputerPlayer()); + } + + if (!tHumanSetupExile.trim().toLowerCase().equals("none")) { + humanDevExileSetup = GuiDisplayUtil.devProcessCardsForZone(humanSetupExile, AllZone.getHumanPlayer()); + } + + if (!tComputerSetupExile.trim().toLowerCase().equals("none")) { + computerDevExileSetup = GuiDisplayUtil.devProcessCardsForZone(computerSetupExile, + AllZone.getComputerPlayer()); + } + + AllZone.getTriggerHandler().suppressMode(TriggerType.ChangesZone); + AllZone.getCombat().reset(); + for (final Card c : humanDevSetup) { + AllZone.getHumanPlayer().getZone(Zone.Hand).add(c); + Singletons.getModel().getGameAction().moveToPlay(c); + c.setSickness(false); + } + + for (final Card c : computerDevSetup) { + AllZone.getComputerPlayer().getZone(Zone.Hand).add(c); + Singletons.getModel().getGameAction().moveToPlay(c); + c.setSickness(false); + } + + if (computerDevGraveyardSetup.size() > 0) { + AllZone.getComputerPlayer().getZone(Zone.Graveyard).setCards(computerDevGraveyardSetup); + } + if (humanDevGraveyardSetup.size() > 0) { + AllZone.getHumanPlayer().getZone(Zone.Graveyard).setCards(humanDevGraveyardSetup); + } + + if (computerDevHandSetup.size() > 0) { + AllZone.getComputerPlayer().getZone(Zone.Hand).setCards(computerDevHandSetup); + } + if (humanDevHandSetup.size() > 0) { + AllZone.getHumanPlayer().getZone(Zone.Hand).setCards(humanDevHandSetup); + } + + if (humanDevLibrarySetup.size() > 0) { + AllZone.getHumanPlayer().getZone(Zone.Library).setCards(humanDevLibrarySetup); + } + if (computerDevLibrarySetup.size() > 0) { + AllZone.getComputerPlayer().getZone(Zone.Library).setCards(computerDevLibrarySetup); + } + + if (humanDevExileSetup.size() > 0) { + AllZone.getHumanPlayer().getZone(Zone.Exile).setCards(humanDevExileSetup); + } + if (computerDevExileSetup.size() > 0) { + AllZone.getComputerPlayer().getZone(Zone.Exile).setCards(computerDevExileSetup); + } + + AllZone.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); + + if (setComputerLife > 0) { + AllZone.getComputerPlayer().setLife(setComputerLife, null); + } + if (setHumanLife > 0) { + AllZone.getHumanPlayer().setLife(setHumanLife, null); + } + + Singletons.getModel().getGameAction().checkStateEffects(); + Singletons.getModel().getGameState().getPhaseHandler().updateObservers(); + AllZone.getHumanPlayer().getZone(Zone.Exile).updateObservers(); + AllZone.getComputerPlayer().getZone(Zone.Exile).updateObservers(); + AllZone.getHumanPlayer().getZone(Zone.Hand).updateObservers(); + AllZone.getComputerPlayer().getZone(Zone.Hand).updateObservers(); + AllZone.getHumanPlayer().getZone(Zone.Graveyard).updateObservers(); + AllZone.getComputerPlayer().getZone(Zone.Graveyard).updateObservers(); + AllZone.getHumanPlayer().getZone(Zone.Battlefield).updateObservers(); + AllZone.getComputerPlayer().getZone(Zone.Battlefield).updateObservers(); + AllZone.getHumanPlayer().getZone(Zone.Library).updateObservers(); + AllZone.getComputerPlayer().getZone(Zone.Library).updateObservers(); + } + + /** + *

+ * devProcessCardsForZone. + *

+ * + * @param data + * an array of {@link java.lang.String} objects. + * @param player + * a {@link forge.game.player.Player} object. + * @return a {@link forge.CardList} object. + */ + public static CardList devProcessCardsForZone(final String[] data, final Player player) { + final CardList cl = new CardList(); + for (final String element : data) { + final String[] cardinfo = element.trim().split("\\|"); + + final Card c = AllZone.getCardFactory().getCard(cardinfo[0], player); + + boolean hasSetCurSet = false; + for (final String info : cardinfo) { + if (info.startsWith("Set:")) { + c.setCurSetCode(info.substring(info.indexOf(':') + 1)); + hasSetCurSet = true; + } else if (info.equalsIgnoreCase("Tapped:True")) { + c.tap(); + } else if (info.startsWith("Counters:")) { + final String[] counterStrings = info.substring(info.indexOf(':') + 1).split(","); + for (final String counter : counterStrings) { + c.addCounter(Counters.valueOf(counter), 1); + } + } else if (info.equalsIgnoreCase("SummonSick:True")) { + c.setSickness(true); + } else if (info.equalsIgnoreCase("FaceDown:True")) { + c.setState(CardCharactersticName.FaceDown); + } + } + + if (!hasSetCurSet) { + c.setCurSetCode(c.getMostRecentSet()); + } + + c.setImageFilename(CardUtil.buildFilename(c)); + cl.add(c); + } + return cl; + } + + /** + *

+ * devModeTutor. + *

+ * + * @since 1.0.15 + */ + public static void devModeTutor() { + final CardList lib = AllZone.getHumanPlayer().getCardsIn(Zone.Library); + final Object o = GuiUtils.chooseOneOrNone("Choose a card", lib.toArray()); + if (null == o) { + return; + } else { + final Card c = (Card) o; + Singletons.getModel().getGameAction().moveToHand(c); + } + } + + /** + *

+ * devModeTutor. + *

+ * + * @since 1.2.7 + */ + public static void devModeAddAnyCard() { + final Iterable uniqueCards = CardDb.instance().getAllUniqueCards(); + final List cards = new ArrayList(); + for (final CardPrinted c : uniqueCards) { + cards.add(c.getName()); + } + Collections.sort(cards); + + // use standard forge's list selection dialog + final ListChooser c = new ListChooser("Name the card", 0, 1, cards); + if (c.show()) { + CardPrinted cp = CardDb.instance().getCard(c.getSelectedValue()); + Card forgeCard = cp.toForgeCard(AllZone.getHumanPlayer()); + Singletons.getModel().getGameAction().moveToHand(forgeCard); + } + } + + /** + *

+ * devModeAddCounter. + *

+ * + * @since 1.0.15 + */ + public static void devModeAddCounter() { + final CardList play = AllZoneUtil.getCardsIn(Zone.Battlefield); + final Object o = GuiUtils.chooseOneOrNone("Add counters to which card?", play.toArray()); + if (null == o) { + return; + } else { + final Card c = (Card) o; + final Counters counter = GuiUtils.chooseOneOrNone("Which type of counter?", Counters.values()); + if (null == counter) { + return; + } else { + final Integer[] integers = new Integer[99]; + for (int j = 0; j < 99; j++) { + integers[j] = Integer.valueOf(j); + } + final Integer i = GuiUtils.chooseOneOrNone("How many counters?", integers); + if (null == i) { + return; + } else { + c.addCounterFromNonEffect(counter, i); + } + } + } + } + + /** + *

+ * devModeTapPerm. + *

+ * + * @since 1.0.15 + */ + public static void devModeTapPerm() { + final CardList play = AllZoneUtil.getCardsIn(Zone.Battlefield); + final Object o = GuiUtils.chooseOneOrNone("Choose a permanent", play.toArray()); + if (null == o) { + return; + } else { + final Card c = (Card) o; + c.tap(); + } + } + + /** + *

+ * devModeUntapPerm. + *

+ * + * @since 1.0.15 + */ + public static void devModeUntapPerm() { + final CardList play = AllZoneUtil.getCardsIn(Zone.Battlefield); + final Object o = GuiUtils.chooseOneOrNone("Choose a permanent", play.toArray()); + if (null == o) { + return; + } else { + final Card c = (Card) o; + c.untap(); + } + } + + /** + *

+ * devModeUnlimitedLand. + *

+ * + * @since 1.0.16 + */ + public static void devModeUnlimitedLand() { + AllZone.getHumanPlayer().addMaxLandsToPlay(100); + } + + /** + *

+ * devModeSetLife. + *

+ * + * @since 1.1.3 + */ + public static void devModeSetLife() { + final List players = AllZone.getPlayersInGame(); + final Object o = GuiUtils.chooseOneOrNone("Set life for which player?", players.toArray()); + if (null == o) { + return; + } else { + final Player p = (Player) o; + final Integer[] integers = new Integer[99]; + for (int j = 0; j < 99; j++) { + integers[j] = Integer.valueOf(j); + } + final Integer i = GuiUtils.chooseOneOrNone("Set life to what?", integers); + if (null == i) { + return; + } else { + p.setLife(i, null); + } + } + } + +} // end class GuiDisplayUtil diff --git a/src/main/java/forge/GuiImportPicture.java b/src/main/java/forge/gui/GuiImportPicture.java similarity index 99% rename from src/main/java/forge/GuiImportPicture.java rename to src/main/java/forge/gui/GuiImportPicture.java index 5a1b425fef6..ce018e327fc 100644 --- a/src/main/java/forge/GuiImportPicture.java +++ b/src/main/java/forge/gui/GuiImportPicture.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.gui; import java.awt.Color; import java.awt.Dimension; diff --git a/src/main/java/forge/GuiInput.java b/src/main/java/forge/gui/GuiInput.java similarity index 96% rename from src/main/java/forge/GuiInput.java rename to src/main/java/forge/gui/GuiInput.java index c4fc6be010c..dbaf936e5c6 100644 --- a/src/main/java/forge/GuiInput.java +++ b/src/main/java/forge/gui/GuiInput.java @@ -15,11 +15,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.gui; import java.util.Observable; import java.util.Observer; +import forge.AllZone; +import forge.Card; +import forge.MyObservable; +import forge.Singletons; import forge.control.input.Input; import forge.game.player.Player; import forge.game.player.PlayerZone; diff --git a/src/main/java/forge/GuiMigrateLocalMWSSetPicturesHQ.java b/src/main/java/forge/gui/GuiMigrateLocalMWSSetPicturesHQ.java similarity index 98% rename from src/main/java/forge/GuiMigrateLocalMWSSetPicturesHQ.java rename to src/main/java/forge/gui/GuiMigrateLocalMWSSetPicturesHQ.java index ec058c7d7e3..0a2842edf79 100644 --- a/src/main/java/forge/GuiMigrateLocalMWSSetPicturesHQ.java +++ b/src/main/java/forge/gui/GuiMigrateLocalMWSSetPicturesHQ.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.gui; import java.awt.Dimension; import java.awt.EventQueue; @@ -51,6 +51,10 @@ import javax.swing.event.ChangeListener; import com.esotericsoftware.minlog.Log; +import forge.AllZone; +import forge.Card; +import forge.CardUtil; +import forge.Singletons; import forge.card.EditionInfo; import forge.error.ErrorViewer; import forge.properties.ForgeProps; @@ -134,7 +138,7 @@ public final class GuiMigrateLocalMWSSetPicturesHQ extends DefaultBoundedRangeMo * * @param c * an array of - * {@link forge.GuiMigrateLocalMWSSetPicturesHQ.MCard} objects. + * {@link forge.gui.GuiMigrateLocalMWSSetPicturesHQ.MCard} objects. */ private GuiMigrateLocalMWSSetPicturesHQ(final MCard[] c) { this.cards = c; @@ -475,7 +479,7 @@ public final class GuiMigrateLocalMWSSetPicturesHQ extends DefaultBoundedRangeMo * getNeededCards. *

* - * @return an array of {@link forge.GuiMigrateLocalMWSSetPicturesHQ.MCard} + * @return an array of {@link forge.gui.GuiMigrateLocalMWSSetPicturesHQ.MCard} * objects. */ private static MCard[] getNeededCards() { diff --git a/src/main/java/forge/GuiMultipleBlockers.java b/src/main/java/forge/gui/GuiMultipleBlockers.java similarity index 98% rename from src/main/java/forge/GuiMultipleBlockers.java rename to src/main/java/forge/gui/GuiMultipleBlockers.java index 2284d05a4ff..6abe4fe6205 100644 --- a/src/main/java/forge/GuiMultipleBlockers.java +++ b/src/main/java/forge/gui/GuiMultipleBlockers.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.gui; import java.awt.BorderLayout; import java.awt.Rectangle; @@ -29,8 +29,11 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.SwingConstants; +import forge.AllZone; +import forge.Card; +import forge.CardList; +import forge.Singletons; import forge.error.ErrorViewer; -import forge.gui.CardContainer; import forge.gui.game.CardPanel; /** diff --git a/src/main/java/forge/GuiProgressBarWindow.java b/src/main/java/forge/gui/GuiProgressBarWindow.java similarity index 99% rename from src/main/java/forge/GuiProgressBarWindow.java rename to src/main/java/forge/gui/GuiProgressBarWindow.java index 86ae9bfb307..3d0d5fe25fb 100644 --- a/src/main/java/forge/GuiProgressBarWindow.java +++ b/src/main/java/forge/gui/GuiProgressBarWindow.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.gui; import java.awt.Dimension; diff --git a/src/main/java/forge/gui/MultiPhaseProgressMonitorWithETA.java b/src/main/java/forge/gui/MultiPhaseProgressMonitorWithETA.java index bfd70ea6454..62ff0fef676 100644 --- a/src/main/java/forge/gui/MultiPhaseProgressMonitorWithETA.java +++ b/src/main/java/forge/gui/MultiPhaseProgressMonitorWithETA.java @@ -25,7 +25,6 @@ import javax.swing.WindowConstants; import net.slightlymagic.braids.util.UtilFunctions; import net.slightlymagic.braids.util.progress_monitor.BaseProgressMonitor; -import forge.GuiProgressBarWindow; /** * GUI Progress Monitor that displays the ETA (Estimated Time of Arrival or diff --git a/src/main/java/forge/gui/deckeditor/elements/CardPanelHeavy.java b/src/main/java/forge/gui/deckeditor/elements/CardPanelHeavy.java index cf57704ce95..90c80e964e7 100644 --- a/src/main/java/forge/gui/deckeditor/elements/CardPanelHeavy.java +++ b/src/main/java/forge/gui/deckeditor/elements/CardPanelHeavy.java @@ -28,7 +28,7 @@ import arcane.ui.CardPanel; import arcane.ui.ViewPanel; import forge.Card; import forge.CardCharactersticName; -import forge.GuiDisplayUtil; +import forge.gui.GuiDisplayUtil; import forge.gui.game.CardDetailPanel; import forge.item.CardPrinted; import forge.item.InventoryItem; diff --git a/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java b/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java index a9c110a9c52..2f469e2d053 100644 --- a/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java +++ b/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java @@ -25,7 +25,7 @@ import javax.swing.JFrame; import forge.AllZone; import forge.Card; -import forge.GuiDisplayUtil; +import forge.gui.GuiDisplayUtil; import forge.properties.ForgeProps; import forge.properties.NewConstants; diff --git a/src/main/java/forge/gui/game/CardDetailPanel.java b/src/main/java/forge/gui/game/CardDetailPanel.java index e6bd377122a..d7c4bec559b 100644 --- a/src/main/java/forge/gui/game/CardDetailPanel.java +++ b/src/main/java/forge/gui/game/CardDetailPanel.java @@ -38,9 +38,9 @@ import forge.Card; import forge.Constant; import forge.Constant.Zone; import forge.gui.CardContainer; +import forge.gui.GuiDisplayUtil; import forge.Counters; import forge.GameEntity; -import forge.GuiDisplayUtil; /** * The class CardDetailPanel. Shows the details of a card. diff --git a/src/main/java/forge/gui/game/CardPanel.java b/src/main/java/forge/gui/game/CardPanel.java index be29fbce3ef..c69b4669873 100644 --- a/src/main/java/forge/gui/game/CardPanel.java +++ b/src/main/java/forge/gui/game/CardPanel.java @@ -26,9 +26,9 @@ import javax.swing.JLabel; import javax.swing.JPanel; import forge.Card; -import forge.GuiDisplayUtil; import forge.ImageCache; import forge.gui.CardContainer; +import forge.gui.GuiDisplayUtil; /** * The class CardPanel. A card panel stores a card to display it on the diff --git a/src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java b/src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java index e33d0e72ea7..ecc58623169 100644 --- a/src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java +++ b/src/main/java/forge/gui/home/utilities/CSubmenuUtilities.java @@ -1,8 +1,8 @@ package forge.gui.home.utilities; import forge.Command; -import forge.GuiImportPicture; import forge.error.BugzReporter; +import forge.gui.GuiImportPicture; import forge.gui.download.GuiDownloadPicturesLQ; import forge.gui.download.GuiDownloadPrices; import forge.gui.download.GuiDownloadQuestImages; diff --git a/src/main/java/forge/util/CopyFiles.java b/src/main/java/forge/util/CopyFiles.java index a12204d0d17..e94b1df33d3 100644 --- a/src/main/java/forge/util/CopyFiles.java +++ b/src/main/java/forge/util/CopyFiles.java @@ -29,7 +29,7 @@ import javax.swing.JLabel; import javax.swing.JProgressBar; import javax.swing.SwingWorker; -import forge.GuiDisplayUtil; +import forge.gui.GuiDisplayUtil; import forge.properties.ForgeProps; import forge.properties.NewConstants; diff --git a/src/main/java/forge/ButtonUtil.java b/src/main/java/forge/view/ButtonUtil.java similarity index 98% rename from src/main/java/forge/ButtonUtil.java rename to src/main/java/forge/view/ButtonUtil.java index 64c246dfd7b..6ce6193732f 100644 --- a/src/main/java/forge/ButtonUtil.java +++ b/src/main/java/forge/view/ButtonUtil.java @@ -15,10 +15,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package forge; +package forge.view; import javax.swing.JButton; +import forge.Singletons; + /** *

* ButtonUtil class. diff --git a/src/test/java/forge/GuiMigrateLocalMWSSetPicturesHQTest.java b/src/test/java/forge/GuiMigrateLocalMWSSetPicturesHQTest.java index 2c5265d4cb8..fd78e334772 100644 --- a/src/test/java/forge/GuiMigrateLocalMWSSetPicturesHQTest.java +++ b/src/test/java/forge/GuiMigrateLocalMWSSetPicturesHQTest.java @@ -2,6 +2,8 @@ package forge; import org.testng.annotations.Test; +import forge.gui.GuiMigrateLocalMWSSetPicturesHQ; + /** * Created by IntelliJ IDEA. User: dhudson */ diff --git a/src/test/java/forge/GuiMultipleBlockers4Test.java b/src/test/java/forge/GuiMultipleBlockers4Test.java index aae12e557e3..a4824e9d8ce 100644 --- a/src/test/java/forge/GuiMultipleBlockers4Test.java +++ b/src/test/java/forge/GuiMultipleBlockers4Test.java @@ -2,6 +2,8 @@ package forge; import org.testng.annotations.Test; +import forge.gui.GuiMultipleBlockers; + /** * Created by IntelliJ IDEA. User: dhudson */ diff --git a/src/test/java/forge/GuiProgressBarWindowTest.java b/src/test/java/forge/GuiProgressBarWindowTest.java index b59517bbf5e..5ea68d03131 100644 --- a/src/test/java/forge/GuiProgressBarWindowTest.java +++ b/src/test/java/forge/GuiProgressBarWindowTest.java @@ -5,6 +5,8 @@ import javax.swing.WindowConstants; import org.testng.Assert; import org.testng.annotations.Test; +import forge.gui.GuiProgressBarWindow; + /** * Created by IntelliJ IDEA. User: dhudson */