From 1f38a60e4bdff9f4ebf5150e6f38f914deabca94 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 19 Oct 2012 22:58:41 +0000 Subject: [PATCH] AllZone is gone. Its members moved to Fmodel while colorchanger went to GameState --- .gitattributes | 1 - src/main/java/forge/AllZone.java | 123 ------------------ src/main/java/forge/Card.java | 6 +- src/main/java/forge/CardUtil.java | 2 +- src/main/java/forge/GameAction.java | 8 +- .../abilityfactory/AbilityFactoryAnimate.java | 5 +- .../abilityfactory/AbilityFactoryChoose.java | 3 +- .../abilityfactory/AbilityFactoryCopy.java | 7 +- .../abilityfactory/AbilityFactoryPlay.java | 3 +- .../forge/card/cardfactory/CardFactory.java | 3 +- .../card/cardfactory/CardFactoryAuras.java | 3 +- .../cardfactory/CardFactoryCreatures.java | 5 +- src/main/java/forge/control/FControl.java | 4 - src/main/java/forge/game/GameNew.java | 2 - src/main/java/forge/game/GameState.java | 20 ++- src/main/java/forge/game/zone/MagicStack.java | 3 +- src/main/java/forge/gui/GuiDisplayUtil.java | 3 +- .../gui/home/sanctioned/CSubmenuDraft.java | 5 +- .../gui/home/sanctioned/CSubmenuSealed.java | 3 +- .../java/forge/gui/match/GauntletWinLose.java | 3 +- .../java/forge/gui/match/ViewWinLose.java | 3 +- .../forge/gui/match/nonsingleton/CField.java | 3 +- src/main/java/forge/item/CardPrinted.java | 3 +- src/main/java/forge/model/FModel.java | 41 ++++-- .../java/forge/quest/QuestController.java | 8 +- src/test/java/forge/RunTest.java | 2 +- 26 files changed, 75 insertions(+), 197 deletions(-) delete mode 100644 src/main/java/forge/AllZone.java diff --git a/.gitattributes b/.gitattributes index ff06272d192..29ff88b3583 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12371,7 +12371,6 @@ src/main/config/forge.ico -text svneol=unset#image/ico src/main/config/forge.sh svneol=native#text/x-sh src/main/config/forge_checks.xml svneol=native#text/xml src/main/config/support/template.applescript -text -src/main/java/forge/AllZone.java svneol=native#text/plain src/main/java/forge/Card.java svneol=native#text/plain src/main/java/forge/CardCharacteristicName.java -text src/main/java/forge/CardColor.java svneol=native#text/plain diff --git a/src/main/java/forge/AllZone.java b/src/main/java/forge/AllZone.java deleted file mode 100644 index af2d1330ada..00000000000 --- a/src/main/java/forge/AllZone.java +++ /dev/null @@ -1,123 +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 forge.card.cardfactory.CardFactory; -import forge.card.cardfactory.CardFactoryInterface; -import forge.game.limited.GauntletMini; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; - - -/** - * Please use public getters and setters instead of direct field access. - *

- * If you need a setter, by all means, add it. - * - * @author Forge - * @version $Id$ - */ -public final class AllZone { - // only for testing, should read decks from local directory - // public static final IO IO = new IO("all-decks"); - - /** - * Do not instantiate. - */ - private AllZone() { - // blank - } - - /** Global gauntletData. */ - private static forge.game.limited.GauntletMini gauntlet = null; - - /** Constant COLOR_CHANGER. */ - private static final ColorChanger COLOR_CHANGER = new ColorChanger(); - - // Phase is now a prerequisite for CardFactory - /** Global cardFactory. */ - private static CardFactoryInterface cardFactory = null; - - // initialized at Runtime since it has to be the last object constructed - - // shared between Input_Attack, Input_Block, Input_CombatDamage , - // InputState_Computer - - /** - *

- * getGauntletData. - *

- * - * @return a {@link forge.quest.data.QuestData} object. - * @since 1.0.15 - */ - public static forge.game.limited.GauntletMini getGauntlet() { - - if (gauntlet == null) { - gauntlet = new GauntletMini(); - } - return AllZone.gauntlet; - } - - /** - *

- * getCardFactory. - *

- * - * @return a {@link forge.card.cardfactory.CardFactoryInterface} object. - * @since 1.0.15 - */ - public static CardFactoryInterface getCardFactory() { - if (AllZone.cardFactory == null) { - AllZone.setCardFactory(new CardFactory(ForgeProps.getFile(NewConstants.CARDSFOLDER))); - } - return AllZone.cardFactory; - } - - /** - * Setter for cardFactory. - * - * @param factory - * the factory to set - */ - private static void setCardFactory(final CardFactoryInterface factory) { - AllZone.cardFactory = factory; - } - - /** - * Create and return the next timestamp. - * - * Will eventually be marked deprecated. - * - * @return the next timestamp - */ - public static long getNextTimestamp() { - return Singletons.getModel().getGameState().getNextTimestamp(); - } - - /** - * Getter for colorChanger. - * - * @return the colorChanger - */ - public static ColorChanger getColorChanger() { - return AllZone.COLOR_CHANGER; - } - - -} // AllZone diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 051bbe80415..5e61a2a6362 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -1733,7 +1733,7 @@ public class Card extends GameEntity implements Comparable { return new CardColor(this); } CardColor colors = null; - final ArrayList globalChanges = AllZone.getColorChanger().getColorChanges(); + final ArrayList globalChanges = Singletons.getModel().getGameState().getColorChanger().getColorChanges(); colors = this.determineColor(globalChanges); colors.fixColorless(); return colors; @@ -3975,7 +3975,7 @@ public class Card extends GameEntity implements Comparable { */ public final void addEquipping(final Card c) { this.equipping.add(c); - this.setTimestamp(AllZone.getNextTimestamp()); + this.setTimestamp(Singletons.getModel().getGameState().getNextTimestamp()); this.updateObservers(); } @@ -4160,7 +4160,7 @@ public class Card extends GameEntity implements Comparable { */ public final void addEnchanting(final GameEntity e) { this.enchanting = e; - this.setTimestamp(AllZone.getNextTimestamp()); + this.setTimestamp(Singletons.getModel().getGameState().getNextTimestamp()); this.updateObservers(); } diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index 8bffc5d8b3c..b81e5e28c73 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -691,7 +691,7 @@ public final class CardUtil { if (c.isInAlternateState()) { c.setState(CardCharacteristicName.Original); } - final Card res = AllZone.getCardFactory().copyCard(c); + final Card res = Singletons.getModel().getCardFactory().copyCard(c); c.setState(state); res.setState(state); res.setControllerObjects(c.getControllerObjects()); diff --git a/src/main/java/forge/GameAction.java b/src/main/java/forge/GameAction.java index a3a04385a2c..e594f50ffb3 100644 --- a/src/main/java/forge/GameAction.java +++ b/src/main/java/forge/GameAction.java @@ -162,7 +162,7 @@ public class GameAction { if (zoneFrom.is(ZoneType.Battlefield)) { c.setFlipStaus(false); } - copied = AllZone.getCardFactory().copyCard(c); + copied = Singletons.getModel().getCardFactory().copyCard(c); copied.setUnearthed(c.isUnearthed()); copied.setTapped(false); for (final Trigger trigger : copied.getTriggers()) { @@ -303,7 +303,7 @@ public class GameAction { copied.turnFaceUp(); } } else if (zoneTo.is(ZoneType.Battlefield)) { - copied.setTimestamp(AllZone.getNextTimestamp()); + copied.setTimestamp(Singletons.getModel().getGameState().getNextTimestamp()); for (String s : copied.getKeyword()) { if (s.startsWith("May be played") || s.startsWith("You may look at this card.") || s.startsWith("May be played by your opponent") @@ -313,7 +313,7 @@ public class GameAction { } } } else if (zoneTo.is(ZoneType.Graveyard)) { - copied.setTimestamp(AllZone.getNextTimestamp()); + copied.setTimestamp(Singletons.getModel().getGameState().getNextTimestamp()); for (String s : copied.getKeyword()) { if (s.startsWith("May be played") || s.startsWith("You may look at this card.") || s.startsWith("May be played by your opponent") @@ -687,7 +687,7 @@ public class GameAction { if (p != null && p.is(ZoneType.Battlefield)) { lastKnownInfo = CardUtil.getLKICopy(c); c.clearCounters(); // remove all counters - library.add(AllZone.getCardFactory().copyCard(c), libPosition); + library.add(Singletons.getModel().getCardFactory().copyCard(c), libPosition); } else { c.clearCounters(); // remove all counters library.add(c, libPosition); diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryAnimate.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryAnimate.java index bafb18c5d3a..23de46f96b4 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryAnimate.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryAnimate.java @@ -25,7 +25,6 @@ import java.util.Map; import com.google.common.collect.Iterables; -import forge.AllZone; import forge.Card; import forge.CardLists; @@ -557,7 +556,7 @@ public final class AbilityFactoryAnimate { } // Every Animate event needs a unique time stamp - timest = AllZone.getNextTimestamp(); + timest = Singletons.getModel().getGameState().getNextTimestamp(); final long timestamp = timest; @@ -1207,7 +1206,7 @@ public final class AbilityFactoryAnimate { } // Every Animate event needs a unique time stamp - timest = AllZone.getNextTimestamp(); + timest = Singletons.getModel().getGameState().getNextTimestamp(); final long timestamp = timest; diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryChoose.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryChoose.java index 608c3772d93..901d9605f49 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryChoose.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryChoose.java @@ -30,7 +30,6 @@ import com.google.common.base.Predicates; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; -import forge.AllZone; import forge.Card; import forge.CardLists; @@ -1630,7 +1629,7 @@ public final class AbilityFactoryChoose { // still missing a listener to display the card preview // in the right name = choice.getSelectedValue(); - if (AllZone.getCardFactory().getCard(CardDb.instance().getCard(name), p).isValid(valid, host.getController(), host)) { + if (Singletons.getModel().getCardFactory().getCard(CardDb.instance().getCard(name), p).isValid(valid, host.getController(), host)) { host.setNamedCard(choice.getSelectedValue()); ok = true; } diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryCopy.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryCopy.java index 9b30d2c8f55..29d49cda480 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryCopy.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryCopy.java @@ -24,7 +24,6 @@ import java.util.Iterator; import java.util.List; import java.util.Random; -import forge.AllZone; import forge.Card; import forge.CardCharacteristicName; @@ -411,7 +410,7 @@ public final class AbilityFactoryCopy { if (!c.isToken() || c.isCopiedToken()) { // copy creature and put it onto the battlefield - copy = AllZone.getCardFactory().getCard(CardDb.instance().getCard(c), sa.getActivatingPlayer()); + copy = Singletons.getModel().getCardFactory().getCard(CardDb.instance().getCard(c), sa.getActivatingPlayer()); // when copying something stolen: copy.addController(sa.getActivatingPlayer()); @@ -828,7 +827,7 @@ public final class AbilityFactoryCopy { for (final SpellAbility chosenSAcopy : chosenSAs) { chosenSAcopy.setActivatingPlayer(controller); for (int i = 0; i < amount; i++) { - AllZone.getCardFactory().copySpellontoStack(card, chosenSAcopy.getSourceCard(), chosenSAcopy, true); + Singletons.getModel().getCardFactory().copySpellontoStack(card, chosenSAcopy.getSourceCard(), chosenSAcopy, true); } } } @@ -844,7 +843,7 @@ public final class AbilityFactoryCopy { chosenSA.setActivatingPlayer(controller); for (int i = 0; i < amount; i++) { - AllZone.getCardFactory().copySpellontoStack(card, chosenSA.getSourceCard(), chosenSA, true); + Singletons.getModel().getCardFactory().copySpellontoStack(card, chosenSA.getSourceCard(), chosenSA, true); } } } // end resolve diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java index 37d41962d66..11edd467249 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java @@ -25,7 +25,6 @@ import java.util.Random; import com.google.common.base.Predicate; -import forge.AllZone; import forge.Card; import forge.CardCharacteristicName; @@ -445,7 +444,7 @@ public final class AbilityFactoryPlay { source.clearRemembered(); } if (params.containsKey("CopyCard")) { - tgtCard = AllZone.getCardFactory().getCard(CardDb.instance().getCard(tgtCard), sa.getActivatingPlayer()); + tgtCard = Singletons.getModel().getCardFactory().getCard(CardDb.instance().getCard(tgtCard), sa.getActivatingPlayer()); // when copying something stolen: tgtCard.addController(sa.getActivatingPlayer()); diff --git a/src/main/java/forge/card/cardfactory/CardFactory.java b/src/main/java/forge/card/cardfactory/CardFactory.java index d1ceae20863..7d1d580763a 100644 --- a/src/main/java/forge/card/cardfactory/CardFactory.java +++ b/src/main/java/forge/card/cardfactory/CardFactory.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; -import forge.AllZone; import forge.Card; import forge.CardCharacteristicName; import forge.CardUtil; @@ -156,7 +155,7 @@ public class CardFactory implements CardFactoryInterface { final boolean bCopyDetails) { Player originalController = original.getController(); Player controller = sa.getActivatingPlayer(); - final Card c = AllZone.getCardFactory().copyCard(original); + final Card c = Singletons.getModel().getCardFactory().copyCard(original); // change the color of the copy (eg: Fork) // Currently won't work for abilities, only for spells diff --git a/src/main/java/forge/card/cardfactory/CardFactoryAuras.java b/src/main/java/forge/card/cardfactory/CardFactoryAuras.java index d733439cbe8..71c6668f34c 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryAuras.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryAuras.java @@ -25,7 +25,6 @@ import com.esotericsoftware.minlog.Log; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; -import forge.AllZone; import forge.Card; import forge.CardLists; @@ -212,7 +211,7 @@ class CardFactoryAuras { crd.removeSpellAbility(cardAbilitie); } } - final Card c = AllZone.getCardFactory().copyCard(crd); + final Card c = Singletons.getModel().getCardFactory().copyCard(crd); final ArrayList types = c.getType(); final SpellAbility[] abilities = card.getSpellAbility(); for (int i = 0; i < types.size(); i++) { diff --git a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java index b9bbcfe9ba4..0cc7e5a2930 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java @@ -26,7 +26,6 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; -import forge.AllZone; import forge.Card; import forge.CardCharacteristicName; @@ -243,7 +242,7 @@ public class CardFactoryCreatures { card.setChosenColor(colors); final String s = CardUtil.getShortColor(color[0]); - timeStamp[0] = AllZone.getColorChanger().addColorChanges(s, card, true, true); + timeStamp[0] = Singletons.getModel().getGameState().getColorChanger().addColorChanges(s, card, true, true); } }; // Command @@ -253,7 +252,7 @@ public class CardFactoryCreatures { @Override public void execute() { final String s = CardUtil.getShortColor(color[0]); - AllZone.getColorChanger().removeColorChanges(s, card, true, timeStamp[0]); + Singletons.getModel().getGameState().getColorChanger().removeColorChanges(s, card, true, timeStamp[0]); } }; diff --git a/src/main/java/forge/control/FControl.java b/src/main/java/forge/control/FControl.java index aa76bdce84c..5af4d1e33b7 100644 --- a/src/main/java/forge/control/FControl.java +++ b/src/main/java/forge/control/FControl.java @@ -31,7 +31,6 @@ import javax.swing.JLayeredPane; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; -import forge.AllZone; import forge.Singletons; import forge.control.KeyboardShortcuts.Shortcut; import forge.game.player.Player; @@ -143,9 +142,6 @@ public enum FControl { /** After view and model have been initialized, control can start. */ public void initialize() { - // Preloads all cards (using progress bar). - AllZone.getCardFactory(); - // Preloads skin components (using progress bar). FSkin.loadFull(); diff --git a/src/main/java/forge/game/GameNew.java b/src/main/java/forge/game/GameNew.java index b26cbac13da..e2c6f6b7555 100644 --- a/src/main/java/forge/game/GameNew.java +++ b/src/main/java/forge/game/GameNew.java @@ -14,7 +14,6 @@ import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import forge.AllZone; import forge.Card; import forge.CardLists; import forge.CardPredicates; @@ -98,7 +97,6 @@ public class GameNew { */ public static void newGame(final Map playersConditions, GameType gameType) { Singletons.getModel().getMatch().getInput().clearInput(); - AllZone.getColorChanger().reset(); Card.resetUniqueNumber(); // need this code here, otherwise observables fail diff --git a/src/main/java/forge/game/GameState.java b/src/main/java/forge/game/GameState.java index ee31961077b..a69ece7dec0 100644 --- a/src/main/java/forge/game/GameState.java +++ b/src/main/java/forge/game/GameState.java @@ -25,6 +25,7 @@ import java.util.List; import forge.Card; import forge.CardLists; import forge.CardPredicates.Presets; +import forge.ColorChanger; import forge.GameLog; import forge.StaticEffects; import forge.card.replacement.ReplacementHandler; @@ -60,6 +61,7 @@ public class GameState { private final ReplacementHandler replacementHandler = new ReplacementHandler(); private Combat combat = new Combat(); private final GameLog gameLog = new GameLog(); + private final ColorChanger colorChanger = new ColorChanger(); private boolean gameOver = false; private final PlayerZone stackZone = new PlayerZone(ZoneType.Stack, null); @@ -420,16 +422,12 @@ public class GameState { all.addAll(getStackZone().getCards()); return all; } - - /** - *

- * getTokenDoublersMagnitude. - *

- * - * @param player - * the {@link forge.game.player.Player} player to determine if is affected by - * Doubling Season - * @return a int. - */ + /** + * TODO: Write javadoc for this method. + * @return + */ + public ColorChanger getColorChanger() { + return colorChanger; + } } diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index 5274a98fc3f..705d51e35b1 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -24,7 +24,6 @@ import java.util.Stack; import com.esotericsoftware.minlog.Log; -import forge.AllZone; import forge.Card; import forge.CardLists; @@ -659,7 +658,7 @@ public class MagicStack extends MyObservable { @Override public void execute() { for (int i = 0; i < sp.getSourceCard().getReplicateMagnitude(); i++) { - AllZone.getCardFactory().copySpellontoStack(sp.getSourceCard(), sp.getSourceCard(), sp, false); + Singletons.getModel().getCardFactory().copySpellontoStack(sp.getSourceCard(), sp.getSourceCard(), sp, false); } } }; diff --git a/src/main/java/forge/gui/GuiDisplayUtil.java b/src/main/java/forge/gui/GuiDisplayUtil.java index 19de79caea7..037d3ec11ff 100644 --- a/src/main/java/forge/gui/GuiDisplayUtil.java +++ b/src/main/java/forge/gui/GuiDisplayUtil.java @@ -32,7 +32,6 @@ import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.border.Border; -import forge.AllZone; import forge.Card; import forge.CardCharacteristicName; @@ -575,7 +574,7 @@ public final class GuiDisplayUtil { for (final String element : data) { final String[] cardinfo = element.trim().split("\\|"); - final Card c = AllZone.getCardFactory().getCard(CardDb.instance().getCard(cardinfo[0]), player); + final Card c = Singletons.getModel().getCardFactory().getCard(CardDb.instance().getCard(cardinfo[0]), player); boolean hasSetCurSet = false; for (final String info : cardinfo) { diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java index 4d6958078cf..4286ba798ae 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java @@ -9,7 +9,6 @@ import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; -import forge.AllZone; import forge.Command; import forge.Singletons; import forge.control.FControl; @@ -109,11 +108,11 @@ public enum CSubmenuDraft implements ICDoc { return; } - AllZone.getGauntlet().resetGauntletDraft(); + Singletons.getModel().getGauntletMini().resetGauntletDraft(); if (gauntlet) { int rounds = Singletons.getModel().getDecks().getDraft().get(humanDeck.getName()).getAiDecks().size(); - AllZone.getGauntlet().launch(rounds, humanDeck, GameType.Draft); + Singletons.getModel().getGauntletMini().launch(rounds, humanDeck, GameType.Draft); return; } diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java index ecf15cb704a..fc3660a8795 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java @@ -12,7 +12,6 @@ import javax.swing.SwingUtilities; import org.apache.commons.lang3.StringUtils; -import forge.AllZone; import forge.Command; import forge.Constant; import forge.Singletons; @@ -123,7 +122,7 @@ public enum CSubmenuSealed implements ICDoc { int matches = Singletons.getModel().getDecks().getSealed().get(human.getName()).getAiDecks().size(); - AllZone.getGauntlet().launch(matches, human, GameType.Sealed); + Singletons.getModel().getGauntletMini().launch(matches, human, GameType.Sealed); } /** */ diff --git a/src/main/java/forge/gui/match/GauntletWinLose.java b/src/main/java/forge/gui/match/GauntletWinLose.java index 417ec015280..5c52b5dccff 100644 --- a/src/main/java/forge/gui/match/GauntletWinLose.java +++ b/src/main/java/forge/gui/match/GauntletWinLose.java @@ -24,7 +24,6 @@ import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.SwingConstants; -import forge.AllZone; import forge.Singletons; import forge.game.MatchController; import forge.game.limited.GauntletMini; @@ -57,7 +56,7 @@ public class GauntletWinLose extends ControlWinLose { public GauntletWinLose(final ViewWinLose view0, MatchController match) { super(view0, match); this.view = view0; - gauntlet = AllZone.getGauntlet(); + gauntlet = Singletons.getModel().getGauntletMini(); this.wonMatch = match.isWonBy(Singletons.getControl().getPlayer().getLobbyPlayer()); } diff --git a/src/main/java/forge/gui/match/ViewWinLose.java b/src/main/java/forge/gui/match/ViewWinLose.java index f87ee45b92c..daeeddc4d73 100644 --- a/src/main/java/forge/gui/match/ViewWinLose.java +++ b/src/main/java/forge/gui/match/ViewWinLose.java @@ -10,7 +10,6 @@ import javax.swing.JScrollPane; import javax.swing.SwingConstants; import net.miginfocom.swing.MigLayout; -import forge.AllZone; import forge.Singletons; import forge.game.MatchController; import forge.game.player.LobbyPlayer; @@ -59,7 +58,7 @@ public class ViewWinLose { control = new QuestWinLoseHandler(this, match); break; case Draft: - if (!AllZone.getGauntlet().isGauntletDraft()) break; + if (!Singletons.getModel().getGauntletMini().isGauntletDraft()) break; case Sealed: control = new GauntletWinLose(this, match); break; diff --git a/src/main/java/forge/gui/match/nonsingleton/CField.java b/src/main/java/forge/gui/match/nonsingleton/CField.java index 7a3d48098ee..b1ddd728bf1 100644 --- a/src/main/java/forge/gui/match/nonsingleton/CField.java +++ b/src/main/java/forge/gui/match/nonsingleton/CField.java @@ -28,7 +28,6 @@ import java.util.List; import java.util.Observable; import java.util.Observer; -import forge.AllZone; import forge.Card; import forge.Command; @@ -296,7 +295,7 @@ public class CField implements ICDoc { faceDown.setName("Face Down"); choices2.add(faceDown); } else { - final Card faceDown = AllZone.getCardFactory().copyCard(crd); + final Card faceDown = Singletons.getModel().getCardFactory().copyCard(crd); faceDown.turnFaceUp(); choices2.add(faceDown); } diff --git a/src/main/java/forge/item/CardPrinted.java b/src/main/java/forge/item/CardPrinted.java index 496c2f448ac..ac26648c4ab 100644 --- a/src/main/java/forge/item/CardPrinted.java +++ b/src/main/java/forge/item/CardPrinted.java @@ -26,7 +26,6 @@ import org.apache.commons.lang3.ArrayUtils; import com.google.common.base.Function; import com.google.common.base.Predicate; -import forge.AllZone; import forge.Card; import forge.CardUtil; import forge.Singletons; @@ -299,7 +298,7 @@ public final class CardPrinted implements Comparable, InventoryItem * @return the card */ public Card toForgeCard(Player owner) { - final Card c = AllZone.getCardFactory().getCard(this, owner); + final Card c = Singletons.getModel().getCardFactory().getCard(this, owner); return c; } diff --git a/src/main/java/forge/model/FModel.java b/src/main/java/forge/model/FModel.java index 15107abbf11..7e8ada329af 100644 --- a/src/main/java/forge/model/FModel.java +++ b/src/main/java/forge/model/FModel.java @@ -33,10 +33,13 @@ import forge.card.CardBlock; import forge.card.EditionCollection; import forge.card.FatPackData; import forge.card.FormatCollection; +import forge.card.cardfactory.CardFactory; +import forge.card.cardfactory.CardFactoryInterface; import forge.deck.CardCollections; import forge.error.ExceptionHandler; import forge.game.GameState; import forge.game.MatchController; +import forge.game.limited.GauntletMini; import forge.game.player.LobbyPlayer; import forge.gauntlet.GauntletData; import forge.properties.ForgePreferences; @@ -76,9 +79,14 @@ public enum FModel { private final ForgePreferences preferences; private GameState gameState; private GameAction gameAction; + // Someone should take care of 2 gauntlets here private GauntletData gauntletData; + private GauntletMini gauntlet; + + private final CardFactory cardFactory; + private final QuestController quest; + private final CardCollections decks; - private QuestController quest = null; private final MatchController match; private final EditionCollection editions; @@ -89,8 +97,8 @@ public enum FModel { private final IStorageView blocks; private final IStorageView fantasyBlocks; - // Lazy, since CardDb not ready. - private CardCollections decks; + + /** * Constructor. @@ -147,12 +155,14 @@ public enum FModel { this.setBuildInfo(new BuildInfo()); this.loadDynamicGamedata(); + + // Loads all cards (using progress bar). + this.cardFactory = new CardFactory(ForgeProps.getFile(NewConstants.CARDSFOLDER)); + this.decks = new CardCollections(ForgeProps.getFile(NewConstants.NEW_DECKS)); + this.quest = new QuestController(); } public final QuestController getQuest() { - if (quest == null) { - this.quest = new QuestController(); - } return quest; } @@ -324,9 +334,6 @@ public enum FModel { * @return {@link forge.decks.CardCollections} */ public final CardCollections getDecks() { - if (this.decks == null) { - this.decks = new CardCollections(ForgeProps.getFile(NewConstants.NEW_DECKS)); - } return this.decks; } @@ -427,4 +434,20 @@ public enum FModel { gameAction = new GameAction(gameState); return gameState; } + + /** + * TODO: Write javadoc for this method. + * @return + */ + public CardFactoryInterface getCardFactory() { + return cardFactory; + } + + public GauntletMini getGauntletMini() { + + if (gauntlet == null) { + gauntlet = new GauntletMini(); + } + return gauntlet; + } } diff --git a/src/main/java/forge/quest/QuestController.java b/src/main/java/forge/quest/QuestController.java index 49baa6cbc34..4e646526d84 100644 --- a/src/main/java/forge/quest/QuestController.java +++ b/src/main/java/forge/quest/QuestController.java @@ -70,8 +70,7 @@ public class QuestController { private QuestPetStorage pets = null; // This is used by shop. Had no idea where else to place this - private static transient IStorageView preconManager = new StorageView(new PreconReader( - ForgeProps.getFile(NewConstants.Quest.PRECONS))); + private static transient IStorageView preconManager = null; /** The Constant RANK_TITLES. */ public static final String[] RANK_TITLES = new String[] { "Level 0 - Confused Wizard", "Level 1 - Mana Mage", @@ -161,6 +160,9 @@ public class QuestController { * @return QuestPreconManager */ public static IStorageView getPrecons() { + if ( null == preconManager ) + preconManager = new StorageView(new PreconReader(ForgeProps.getFile(NewConstants.Quest.PRECONS))); + return QuestController.preconManager; } @@ -224,7 +226,7 @@ public class QuestController { final Predicate filter; switch (startPool) { case Precon: - this.myCards.addPreconDeck(QuestController.preconManager.get(preconName)); + this.myCards.addPreconDeck(QuestController.getPrecons().get(preconName)); return; case Rotating: diff --git a/src/test/java/forge/RunTest.java b/src/test/java/forge/RunTest.java index 5933d1d0bf8..aa2b1e4ce4a 100644 --- a/src/test/java/forge/RunTest.java +++ b/src/test/java/forge/RunTest.java @@ -25,7 +25,7 @@ public class RunTest { @Test(timeOut = 1000, enabled = false) void test() { Card c; - final CardFactoryInterface cf = AllZone.getCardFactory(); + final CardFactoryInterface cf = Singletons.getModel().getCardFactory(); // ********* test Card /* c = cf.getCard("Elvish Warrior", AllZone.getComputerPlayer());