QuestController moved to FModel,

AllZone.getPlayersInGame() inlined as gameState.getPlayers
This commit is contained in:
Maxmtg
2012-10-08 20:35:54 +00:00
parent d4b7f1d2dd
commit a509d612ae
47 changed files with 120 additions and 147 deletions

View File

@@ -35,7 +35,6 @@ import forge.game.zone.PlayerZone;
import forge.game.zone.ZoneType;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
import forge.quest.QuestController;
import forge.util.Aggregates;
@@ -58,9 +57,6 @@ public final class AllZone {
// blank
}
/** Global <code>questData</code>. */
private static forge.quest.QuestController quest = null;
/** Global <code>gauntletData</code>. */
private static forge.game.limited.GauntletMini gauntlet = null;
@@ -113,30 +109,6 @@ public final class AllZone {
return Aggregates.firstFieldEquals(players, Player.Accessors.FN_GET_TYPE, PlayerType.COMPUTER);
}
/**
* get a list of all players participating in this game.
*
* @return a list of all player participating in this game
*/
public static List<Player> getPlayersInGame() {
return Singletons.getModel().getGameState().getPlayers();
}
/**
* <p>
* getQuestData.
* </p>
*
* @return a {@link forge.quest.data.QuestData} object.
* @since 1.0.15
*/
public static forge.quest.QuestController getQuest() {
if (null == quest) {
quest = new QuestController();
}
return AllZone.quest;
}
/**
* <p>
* getGauntletData.

View File

@@ -56,7 +56,7 @@ public abstract class AllZoneUtil {
if (zone == ZoneType.Stack) {
cards.addAll(AllZone.getStackZone().getCards());
} else {
for (final Player p : AllZone.getPlayersInGame()) {
for (final Player p : Singletons.getModel().getGameState().getPlayers()) {
cards.addAll(p.getZone(zone).getCards());
}
}
@@ -219,7 +219,7 @@ public abstract class AllZoneUtil {
*/
public static List<Card> getColorInPlay(final String color) {
final List<Card> cards = new ArrayList<Card>();
for(Player p : AllZone.getPlayersInGame()) {
for(Player p : Singletons.getModel().getGameState().getPlayers()) {
cards.addAll(getPlayerColorInPlay(p, color));
}
return cards;
@@ -313,7 +313,7 @@ public abstract class AllZoneUtil {
*/
public static List<Card> getCardsInGame() {
final List<Card> all = new ArrayList<Card>();
for (final Player player : AllZone.getPlayersInGame()) {
for (final Player player : Singletons.getModel().getGameState().getPlayers()) {
all.addAll(player.getZone(ZoneType.Graveyard).getCards());
all.addAll(player.getZone(ZoneType.Hand).getCards());
all.addAll(player.getZone(ZoneType.Library).getCards());

View File

@@ -627,7 +627,7 @@ public final class CardUtil {
final Card src) {
List<Card> res = new ArrayList<Card>();
if (to != ZoneType.Stack) {
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
res.addAll(p.getZone(to).getCardsAddedThisTurn(from));
} else {
res.addAll(AllZone.getStackZone().getCardsAddedThisTurn(from));

View File

@@ -412,7 +412,7 @@ public class GameAction {
}
AllZone.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
for (Player p: AllZone.getPlayersInGame()) {
for (Player p: Singletons.getModel().getGameState().getPlayers()) {
((PlayerZoneBattlefield)p.getZone(ZoneType.Battlefield)).setTriggers(false);
}
@@ -433,7 +433,7 @@ public class GameAction {
AllZone.getTriggerHandler().runTrigger(TriggerType.ChangesController, runParams);
AllZone.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
for (Player p: AllZone.getPlayersInGame()) {
for (Player p: Singletons.getModel().getGameState().getPlayers()) {
((PlayerZoneBattlefield)p.getZone(ZoneType.Battlefield)).setTriggers(true);
}
}

View File

@@ -2225,7 +2225,7 @@ public class AbilityFactory {
players.add(sa.getActivatingPlayer().getOpponent());
}
} else {
for (Player p : AllZone.getPlayersInGame()) {
for (Player p : Singletons.getModel().getGameState().getPlayers()) {
if (p.isValid(defined, sa.getActivatingPlayer(), sa.getSourceCard())) {
players.add(p);
}

View File

@@ -27,7 +27,6 @@ import java.util.Random;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import forge.AllZone;
import forge.AllZoneUtil;
import forge.Card;
@@ -1405,7 +1404,7 @@ public class AbilityFactoryAttach {
if (tgt.canTgtPlayer()) {
final ArrayList<Player> players = new ArrayList<Player>();
for (Player player : AllZone.getPlayersInGame()) {
for (Player player : Singletons.getModel().getGameState().getPlayers()) {
if (player.isValid(tgt.getValidTgts(), aura.getActivatingPlayer(), source)) {
players.add(player);
}

View File

@@ -2977,7 +2977,7 @@ public final class AbilityFactoryChangeZone {
// if Shuffle parameter exists, and any amount of cards were owned by
// that player, then shuffle that library
if (params.containsKey("Shuffle")) {
for( Player p : AllZone.getPlayersInGame()) {
for( Player p : Singletons.getModel().getGameState().getPlayers()) {
if (Iterables.any(cards, CardPredicates.isOwner(p))) {
p.shuffle();
}

View File

@@ -39,6 +39,7 @@ import forge.CardPredicates;
import forge.CardPredicates.Presets;
import forge.CardUtil;
import forge.Constant;
import forge.Singletons;
import forge.card.cardfactory.CardFactoryUtil;
import forge.card.spellability.AbilityActivated;
import forge.card.spellability.AbilitySub;
@@ -1305,7 +1306,7 @@ public final class AbilityFactoryChoose {
}
final ArrayList<Player> choices = params.containsKey("Choices") ? AbilityFactory.getDefinedPlayers(
sa.getSourceCard(), params.get("Choices"), sa) : new ArrayList<Player>(AllZone.getPlayersInGame());
sa.getSourceCard(), params.get("Choices"), sa) : new ArrayList<Player>(Singletons.getModel().getGameState().getPlayers());
final String choiceDesc = params.containsKey("ChoiceTitle") ? params.get("ChoiceTitle") : "Choose a player";

View File

@@ -1565,7 +1565,7 @@ public class AbilityFactoryCounters {
}
}
List<Player> players = AllZone.getPlayersInGame();
List<Player> players = Singletons.getModel().getGameState().getPlayers();
@Override
public void selectPlayer(final Player player) {

View File

@@ -798,7 +798,7 @@ public class AbilityFactoryPreventDamage {
}
if (!players.equals("")) {
final ArrayList<Player> playerList = new ArrayList<Player>(AllZone.getPlayersInGame());
final ArrayList<Player> playerList = new ArrayList<Player>(Singletons.getModel().getGameState().getPlayers());
for (final Player p : playerList) {
if (p.isValid(players, source.getController(), source)) {
p.addPreventNextDamage(numDam);

View File

@@ -521,7 +521,7 @@ public class AbilityFactoryTurns {
// Update observers
AllZone.getStack().updateObservers();
for (Player p : AllZone.getPlayersInGame()) {
for (Player p : Singletons.getModel().getGameState().getPlayers()) {
p.updateObservers();
p.updateLabelObservers();
}

View File

@@ -73,7 +73,7 @@ class CardFactoryEnchantments {
@Override
public boolean canPlay() {
boolean haveGraveWithSomeCreatures = false;
for( Player p : AllZone.getPlayersInGame()) {
for( Player p : Singletons.getModel().getGameState().getPlayers()) {
Iterable<Card> grave = CardLists.filter(p.getCardsIn(ZoneType.Graveyard), CardPredicates.Presets.CREATURES);
if( Iterables.size(grave) > 1)
{

View File

@@ -574,7 +574,7 @@ public class CardFactorySorceries {
private final static void balanceLands(Spell card)
{
List<List<Card>> lands = new ArrayList<List<Card>>();
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
lands.add(AllZoneUtil.getPlayerLandsInPlay(p));
}
@@ -585,7 +585,7 @@ public class CardFactorySorceries {
min = Math.min(min, s);
}
Iterator<List<Card>> ll = lands.iterator();
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
List<Card> l = ll.next();
int sac = l.size() - min;
@@ -603,7 +603,7 @@ public class CardFactorySorceries {
private final static void balanceHands(Spell card) {
List<List<Card>> hands = new ArrayList<List<Card>>();
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
hands.add(p.getCardsIn(ZoneType.Hand));
}
@@ -613,7 +613,7 @@ public class CardFactorySorceries {
min = Math.min(min, s);
}
Iterator<List<Card>> hh = hands.iterator();
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
List<Card> h = hh.next();
int sac = h.size() - min;
@@ -624,7 +624,7 @@ public class CardFactorySorceries {
private final static void balanceCreatures(Spell card) {
List<List<Card>> creats = new ArrayList<List<Card>>();
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
creats.add(AllZoneUtil.getCreaturesInPlay(p));
}
@@ -634,7 +634,7 @@ public class CardFactorySorceries {
min = Math.min(min, s);
}
Iterator<List<Card>> cc = creats.iterator();
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
List<Card> c = cc.next();
int sac = c.size() - min;
@@ -774,12 +774,12 @@ public class CardFactorySorceries {
@Override
public void resolve() {
int max = Integer.MIN_VALUE;
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
int s = p.getZone(ZoneType.Hand).size();
max = Math.max(max, s);
}
for (Player p : AllZone.getPlayersInGame())
for (Player p : Singletons.getModel().getGameState().getPlayers())
{
this.discardDraw(p, max);
}
@@ -800,7 +800,7 @@ public class CardFactorySorceries {
@Override
public void resolve() {
List<String> types = new ArrayList<String>();
for(Player p : AllZone.getPlayersInGame()) {
for(Player p : Singletons.getModel().getGameState().getPlayers()) {
if ( p.isHuman() ) {
types.add(GuiChoose.one("Which creature type?", Constant.CardTypes.CREATURE_TYPES));
} else {
@@ -1306,7 +1306,7 @@ public class CardFactorySorceries {
List<Card> grave = card.getController().getCardsIn(ZoneType.Graveyard);
grave = CardLists.filter(grave, Presets.CREATURES);
for (Player p : AllZone.getPlayersInGame()) {
for (Player p : Singletons.getModel().getGameState().getPlayers()) {
if (p.canBeTargetedBy(spell)) {
display.add("Target player loses X life");
break;

View File

@@ -2367,13 +2367,13 @@ public class CardFactoryUtil {
// Count$HighestLifeTotal
if (sq[0].contains("HighestLifeTotal")) {
return CardFactoryUtil.doXMath(
Aggregates.max(AllZone.getPlayersInGame(), Player.Accessors.FN_GET_LIFE), m, c);
Aggregates.max(Singletons.getModel().getGameState().getPlayers(), Player.Accessors.FN_GET_LIFE), m, c);
}
// Count$LowestLifeTotal
if (sq[0].contains("LowestLifeTotal")) {
return CardFactoryUtil.doXMath(
Aggregates.min(AllZone.getPlayersInGame(), Player.Accessors.FN_GET_LIFE), m, c);
Aggregates.min(Singletons.getModel().getGameState().getPlayers(), Player.Accessors.FN_GET_LIFE), m, c);
}
// Count$TopOfLibraryCMC
@@ -2394,7 +2394,7 @@ public class CardFactoryUtil {
// Count$LowestLibrary
if (sq[0].contains("LowestLibrary")) {
return Aggregates.min(AllZone.getPlayersInGame(), Player.Accessors.countCardsInZone(ZoneType.Library));
return Aggregates.min(Singletons.getModel().getGameState().getPlayers(), Player.Accessors.countCardsInZone(ZoneType.Library));
}
// Count$Chroma.<mana letter>
@@ -2466,7 +2466,7 @@ public class CardFactoryUtil {
}
if (sq[0].contains("GraveyardWithGE20Cards")) {
if (Aggregates.max(AllZone.getPlayersInGame(), Player.Accessors.countCardsInZone(ZoneType.Graveyard)) >= 20) {
if (Aggregates.max(Singletons.getModel().getGameState().getPlayers(), Player.Accessors.countCardsInZone(ZoneType.Graveyard)) >= 20) {
return CardFactoryUtil.doXMath(Integer.parseInt(sq[1]), m, c);
} else {
return CardFactoryUtil.doXMath(Integer.parseInt(sq[2]), m, c);

View File

@@ -103,7 +103,7 @@ public class ReplacementHandler {
}
// Round up Static replacement effects
for (final Player p : AllZone.getPlayersInGame()) {
for (final Player p : Singletons.getModel().getGameState().getPlayers()) {
for (final Card crd : p.getAllCards()) {
for (final ReplacementEffect replacementEffect : crd.getReplacementEffects()) {
if (replacementEffect.requirementsCheck()) {

View File

@@ -21,10 +21,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import forge.AllZone;
import forge.AllZoneUtil;
import forge.Card;
import forge.CardUtil;
import forge.Singletons;
import forge.card.abilityfactory.AbilityFactory;
import forge.game.player.Player;
import forge.game.zone.ZoneType;
@@ -705,7 +705,7 @@ public class Target {
* @return a boolean.
*/
public final boolean hasCandidates(final SpellAbility sa, final boolean isTargeted) {
for (Player player : AllZone.getPlayersInGame()) {
for (Player player : Singletons.getModel().getGameState().getPlayers()) {
if (sa.canTarget(player)) {
return true;
}

View File

@@ -25,6 +25,7 @@ import java.util.List;
import forge.AllZone;
import forge.AllZoneUtil;
import forge.Card;
import forge.Singletons;
import forge.CardLists;
import forge.CardUtil;
@@ -407,7 +408,7 @@ public class StaticAbilityContinuous {
final String[] strngs = params.get("Affected").split(",");
for(Player p : AllZone.getPlayersInGame())
for(Player p : Singletons.getModel().getGameState().getPlayers())
if (p.isValid(strngs, controller, hostCard)) {
players.add(p);
}

View File

@@ -160,7 +160,7 @@ public enum FControl {
final String questname = Singletons.getModel().getQuestPreferences().getPreference(QPref.CURRENT_QUEST);
final File data = new File(dirQuests.getPath(), questname);
if (data.exists()) {
AllZone.getQuest().load(QuestDataIO.loadData(data));
Singletons.getModel().getQuest().load(QuestDataIO.loadData(data));
}
// Handles resizing in null layouts of layers in JLayeredPane.

View File

@@ -114,7 +114,7 @@ public class InputMulligan extends Input {
final int newHand = this.doMulligan(humanPlayer, humanRating);
final QuestController quest = AllZone.getQuest();
final QuestController quest = Singletons.getModel().getQuest();
if (quest.isLoaded() && quest.getAssets().hasItem(QuestItemType.SLEIGHT) && (humanRating.getMulliganCount() == 1)) {
AllZone.getHumanPlayer().drawCard();
humanRating.notifyOpeningHandSize(newHand + 1);
@@ -154,7 +154,7 @@ public class InputMulligan extends Input {
ButtonUtil.reset();
final AbilityFactory af = new AbilityFactory();
for (Player p : AllZone.getPlayersInGame()) {
for (Player p : Singletons.getModel().getGameState().getPlayers()) {
final List<Card> openingHand = p.getCardsIn(ZoneType.Hand);
for (final Card c : openingHand) {

View File

@@ -174,7 +174,7 @@ public class GameNew {
// Shuffling
final boolean smoothLand = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_SMOOTH_LAND);
for( Player player : AllZone.getPlayersInGame() )
for( Player player : Singletons.getModel().getGameState().getPlayers() )
{
if ( player.isHuman() ) {
for (int i = 0; i < 100; i++) {
@@ -200,7 +200,7 @@ public class GameNew {
if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE)) {
final String nl = System.getProperty("line.separator");
final StringBuilder msg = new StringBuilder();
for (final Player p : AllZone.getPlayersInGame()) {
for (final Player p : Singletons.getModel().getGameState().getPlayers()) {
final List<Card> lib = p.getCardsIn(ZoneType.Library);
Predicate<Card> goodForAnte = Predicates.not(CardPredicates.Presets.BASIC_LANDS);
Card ante = Aggregates.random(Iterables.filter(lib, goodForAnte));
@@ -229,7 +229,7 @@ public class GameNew {
// Draw 7 cards
for (final Player p : AllZone.getPlayersInGame())
for (final Player p : Singletons.getModel().getGameState().getPlayers())
{
for (int i = 0; i < 7; i++) {
p.drawCard();

View File

@@ -446,7 +446,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
AllZone.getEndOfTurn().executeUntil();
for (Player player : AllZone.getPlayersInGame()) {
for (Player player : Singletons.getModel().getGameState().getPlayers()) {
for (Card c : player.getCardsIn(ZoneType.Hand))
c.setDrawnThisTurn(false);
@@ -508,7 +508,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
}
this.bPhaseEffects = true;
if (!AllZoneUtil.isCardInPlay("Upwelling")) {
for (Player p : AllZone.getPlayersInGame()) {
for (Player p : Singletons.getModel().getGameState().getPlayers()) {
int burn = p.getManaPool().clearPool();
if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_MANABURN)) {
p.loseLife(burn, null);
@@ -597,7 +597,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
AllZone.getStack().setCardsCastLastTurn();
AllZone.getStack().clearCardsCastThisTurn();
AllZone.resetZoneMoveTracking();
for( Player p : AllZone.getPlayersInGame() )
for( Player p : Singletons.getModel().getGameState().getPlayers() )
{
p.resetProwl();
p.setLifeLostThisTurn(0);

View File

@@ -32,6 +32,7 @@ import forge.CardLists;
import forge.CardPredicates.Presets;
import forge.Command;
import forge.GameActionUtil;
import forge.Singletons;
import forge.card.spellability.Ability;
import forge.card.spellability.SpellAbility;
import forge.card.staticability.StaticAbility;
@@ -107,7 +108,7 @@ public class PlayerZoneBattlefield extends PlayerZone {
final String[] k = keyword.split(":");
addMax = Integer.valueOf(k[2]);
if (k[1].equals("Each")) {
for( Player p : AllZone.getPlayersInGame() ){
for( Player p : Singletons.getModel().getGameState().getPlayers() ){
p.addMaxLandsToPlay(addMax);
}
} else {
@@ -220,7 +221,7 @@ public class PlayerZoneBattlefield extends PlayerZone {
final String[] k = keyword.split(":");
addMax = -Integer.valueOf(k[2]);
if (k[1].equals("Each")) {
for(Player p: AllZone.getPlayersInGame())
for(Player p: Singletons.getModel().getGameState().getPlayers())
p.addMaxLandsToPlay(addMax);
} else {
c.getController().addMaxLandsToPlay(addMax);

View File

@@ -16,7 +16,6 @@ import javax.swing.JOptionPane;
import org.apache.commons.lang3.ArrayUtils;
import forge.AllZone;
import forge.Singletons;
import forge.deck.Deck;
import forge.deck.generate.Generate2ColorDeck;
@@ -126,7 +125,7 @@ public class GauntletDeckUtil {
* @return {@link forge.deck.Deck}
*/
public static Deck buildQuestDeck(final String[] selection) {
return AllZone.getQuest().getDuelsManager().getEvent(selection[0]).getEventDeck();
return Singletons.getModel().getQuest().getDuelsManager().getEvent(selection[0]).getEventDeck();
}
/** @return {@link forge.deck.Deck} */
@@ -160,7 +159,7 @@ public class GauntletDeckUtil {
/** @return {@link forge.deck.Deck} */
public static Deck getRandomQuestDeck() {
final List<Deck> allQuestDecks = new ArrayList<Deck>();
final QuestEventManager manager = AllZone.getQuest().getDuelsManager();
final QuestEventManager manager = Singletons.getModel().getQuest().getDuelsManager();
for (final QuestEvent e : manager.getAllDuels()) {
allQuestDecks.add(e.getEventDeck());
@@ -228,7 +227,7 @@ public class GauntletDeckUtil {
deck = Singletons.getModel().getDecks().getConstructed().get(deckName);
}
else {
deck = AllZone.getQuest().getDuelsManager().getEvent(deckName).getEventDeck();
deck = Singletons.getModel().getQuest().getDuelsManager().getEvent(deckName).getEventDeck();
}
// Dump into map and display.

View File

@@ -327,7 +327,7 @@ public final class GuiDisplayUtil {
* </p>
*/
public static void updateGUI() {
for( Player p : AllZone.getPlayersInGame())
for( Player p : Singletons.getModel().getGameState().getPlayers())
{
p.getZone(ZoneType.Battlefield).updateObservers();
p.getZone(ZoneType.Battlefield).updateObservers();
@@ -759,7 +759,7 @@ public final class GuiDisplayUtil {
* @since 1.1.3
*/
public static void devModeSetLife() {
final List<Player> players = AllZone.getPlayersInGame();
final List<Player> players = Singletons.getModel().getGameState().getPlayers();
final Player o = GuiChoose.oneOrNone("Set life for which player?", players);
if (null == o) {
return;
@@ -779,7 +779,7 @@ public final class GuiDisplayUtil {
}
public static void devModeBreakpoint() {
List<Player> Players = AllZone.getPlayersInGame();
List<Player> Players = Singletons.getModel().getGameState().getPlayers();
/*
Combat CombatHandler = AllZone.getCombat();
TriggerHandler Triggers = AllZone.getTriggerHandler();

View File

@@ -5,7 +5,6 @@ import java.awt.Font;
import javax.swing.SwingUtilities;
import net.miginfocom.swing.MigLayout;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.gui.toolbox.FLabel;
@@ -46,13 +45,13 @@ public class ViewItem extends FPanel {
this.btnPurchase.setCommand(new Command() {
@Override
public void execute() {
final QuestAssets qA = AllZone.getQuest().getAssets();
final QuestAssets qA = Singletons.getModel().getQuest().getAssets();
final int cost = ViewItem.this.getItem().getBuyingPrice(qA);
if (cost >= 0 && (qA.getCredits() - cost) >= 0) {
qA.subtractCredits(cost);
qA.addCredits(ViewItem.this.getItem().getSellingPrice(qA));
ViewItem.this.getItem().onPurchase(qA);
AllZone.getQuest().save();
Singletons.getModel().getQuest().save();
}
Singletons.getView().getViewBazaar().refreshLastInstance();
}
@@ -77,7 +76,7 @@ public class ViewItem extends FPanel {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
final QuestAssets qA = AllZone.getQuest().getAssets();
final QuestAssets qA = Singletons.getModel().getQuest().getAssets();
IQuestBazaarItem bazaarItem = ViewItem.this.getItem();
ViewItem.this.lblIcon.setIcon(bazaarItem.getIcon(qA));

View File

@@ -30,7 +30,7 @@ import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import net.miginfocom.swing.MigLayout;
import forge.AllZone;
import forge.Singletons;
import forge.control.bazaar.ControlStall;
import forge.gui.toolbox.FLabel;
import forge.gui.toolbox.FScrollPane;
@@ -148,7 +148,7 @@ public class ViewStall extends JPanel {
* new panels if necessary.
*/
public void updateStall() {
final QuestController qData = AllZone.getQuest();
final QuestController qData = Singletons.getModel().getQuest();
if (qData.getAssets() == null) {
return;
}

View File

@@ -26,7 +26,7 @@ import java.util.Map.Entry;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
import forge.AllZone;
import forge.Singletons;
import forge.deck.Deck;
import forge.gui.deckeditor.SEditorIO;
import forge.gui.deckeditor.SEditorUtil;
@@ -239,7 +239,7 @@ public final class CEditorQuest extends ACEditorBase<CardPrinted, Deck> {
public boolean exit() {
final boolean okToExit = SEditorIO.confirmSaveChanges();
if (okToExit) {
AllZone.getQuest().save();
Singletons.getModel().getQuest().save();
CSubmenuQuestDecks.SINGLETON_INSTANCE.update();
}
return okToExit;

View File

@@ -29,7 +29,7 @@ import javax.swing.JOptionPane;
import com.google.common.base.Function;
import forge.AllZone;
import forge.Singletons;
import forge.deck.Deck;
import forge.deck.DeckBase;
import forge.gui.CardListViewer;
@@ -399,7 +399,7 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
@Override
public boolean exit() {
SSubmenuQuestUtil.updateStatsAndPet();
AllZone.getQuest().save();
Singletons.getModel().getQuest().save();
CSubmenuQuestDecks.SINGLETON_INSTANCE.update();
// undo Card Shop Specifics

View File

@@ -17,7 +17,6 @@ import javax.swing.filechooser.FileFilter;
import org.apache.commons.lang3.ArrayUtils;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.deck.Deck;
@@ -185,7 +184,7 @@ public enum CSubmenuGauntletBuild implements ICDoc {
/** Handles all control for "quest event" radio button click. */
private void updateQuestDecks() {
final List<String> eventNames = new ArrayList<String>();
QuestController quest = AllZone.getQuest();
QuestController quest = Singletons.getModel().getQuest();
for (final QuestEvent e : quest.getDuelsManager().getAllDuels()) {
eventNames.add(e.getEventDeck().getName());

View File

@@ -164,7 +164,7 @@ public enum CSubmenuGauntletContests implements ICDoc {
/** Handles all control for "quest event" radio button click. */
private void updateQuestDecks() {
final List<String> eventNames = new ArrayList<String>();
QuestController quest = AllZone.getQuest();
QuestController quest = Singletons.getModel().getQuest();
for (final QuestEvent e : quest.getDuelsManager().getAllDuels()) {
eventNames.add(e.getEventDeck().getName());

View File

@@ -160,7 +160,7 @@ public enum CSubmenuGauntletQuick implements ICDoc {
/** Handles all control for "quest event" radio button click. */
private void updateQuestDecks() {
final List<String> eventNames = new ArrayList<String>();
QuestController quest = AllZone.getQuest();
QuestController quest = Singletons.getModel().getQuest();
for (final QuestEvent e : quest.getDuelsManager().getAllDuels()) {
eventNames.add(e.getEventDeck().getName());

View File

@@ -8,7 +8,6 @@ import java.util.List;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.gui.framework.EDocID;
@@ -55,8 +54,8 @@ public enum CSubmenuChallenges implements ICDoc {
new Command() {
@Override
public void execute() {
AllZone.getQuest().getAchievements().setCurrentChallenges(null);
AllZone.getQuest().getAssets().setItemLevel(QuestItemType.ZEPPELIN, 2);
Singletons.getModel().getQuest().getAchievements().setCurrentChallenges(null);
Singletons.getModel().getQuest().getAssets().setItemLevel(QuestItemType.ZEPPELIN, 2);
update();
}
});
@@ -68,7 +67,7 @@ public enum CSubmenuChallenges implements ICDoc {
}
});
final QuestController quest = AllZone.getQuest();
final QuestController quest = Singletons.getModel().getQuest();
view.getCbPlant().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
@@ -96,7 +95,7 @@ public enum CSubmenuChallenges implements ICDoc {
SSubmenuQuestUtil.updateStatsAndPet();
final VSubmenuChallenges view = VSubmenuChallenges.SINGLETON_INSTANCE;
final QuestController qCtrl = AllZone.getQuest();
final QuestController qCtrl = Singletons.getModel().getQuest();
if (qCtrl.getAchievements() != null) {
view.getLblTitle().setText("Challenges: " + qCtrl.getRank());
@@ -130,7 +129,7 @@ public enum CSubmenuChallenges implements ICDoc {
@SuppressWarnings("serial")
@Override
public Command getCommandOnSelect() {
final QuestController qc = AllZone.getQuest();
final QuestController qc = Singletons.getModel().getQuest();
return new Command() {
@Override
public void execute() {

View File

@@ -4,8 +4,8 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.gui.framework.EDocID;
import forge.gui.framework.ICDoc;
import forge.gui.home.CMainMenu;
@@ -51,7 +51,7 @@ public enum CSubmenuDuels implements ICDoc {
}
});
final QuestController quest = AllZone.getQuest();
final QuestController quest = Singletons.getModel().getQuest();
view.getCbPlant().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
@@ -80,11 +80,11 @@ public enum CSubmenuDuels implements ICDoc {
final VSubmenuDuels view = VSubmenuDuels.SINGLETON_INSTANCE;
if (AllZone.getQuest().getAchievements() != null) {
view.getLblTitle().setText("Duels: " + AllZone.getQuest().getRank());
if (Singletons.getModel().getQuest().getAchievements() != null) {
view.getLblTitle().setText("Duels: " + Singletons.getModel().getQuest().getRank());
view.getPnlDuels().removeAll();
final List<QuestEventDuel> duels = AllZone.getQuest().getDuelsManager().generateDuels();
final List<QuestEventDuel> duels = Singletons.getModel().getQuest().getDuelsManager().generateDuels();
for (final QuestEventDuel d : duels) {
final SelectablePanel temp = new SelectablePanel(d);
@@ -99,7 +99,7 @@ public enum CSubmenuDuels implements ICDoc {
@SuppressWarnings("serial")
@Override
public Command getCommandOnSelect() {
final QuestController qc = AllZone.getQuest();
final QuestController qc = Singletons.getModel().getQuest();
return new Command() {
@Override
public void execute() {

View File

@@ -14,7 +14,6 @@ import java.util.Map;
import javax.swing.JOptionPane;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.gui.framework.ICDoc;
@@ -77,7 +76,7 @@ public enum CSubmenuQuestData implements ICDoc {
public void update() {
final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE;
final File dirQuests = ForgeProps.getFile(NewConstants.Quest.DATA_DIR);
final QuestController qc = AllZone.getQuest();
final QuestController qc = Singletons.getModel().getQuest();
// Temporary transition code between v1.2.2 and v1.2.3.
// Can be safely deleted after release of 1.2.3.
@@ -175,8 +174,8 @@ public enum CSubmenuQuestData implements ICDoc {
}
// Give the user a few cards to build a deck
AllZone.getQuest().newGame(questName, difficulty, mode, startPool, rotatingFormat, startPrecon, view.getBoxPersist().isSelected());
AllZone.getQuest().save();
Singletons.getModel().getQuest().newGame(questName, difficulty, mode, startPool, rotatingFormat, startPrecon, view.getBoxPersist().isSelected());
Singletons.getModel().getQuest().save();
// Save in preferences.
Singletons.getModel().getQuestPreferences().setPreference(QPref.CURRENT_QUEST, questName + ".dat");
@@ -187,12 +186,12 @@ public enum CSubmenuQuestData implements ICDoc {
/** Changes between quest data files. */
private void changeQuest() {
AllZone.getQuest().load(VSubmenuQuestData.SINGLETON_INSTANCE
Singletons.getModel().getQuest().load(VSubmenuQuestData.SINGLETON_INSTANCE
.getLstQuests().getSelectedQuest());
// Save in preferences.
Singletons.getModel().getQuestPreferences().setPreference(QPref.CURRENT_QUEST,
AllZone.getQuest().getName() + ".dat");
Singletons.getModel().getQuest().getName() + ".dat");
Singletons.getModel().getQuestPreferences().save();
SSubmenuQuestUtil.updateStatsAndPet();

View File

@@ -2,7 +2,6 @@ package forge.gui.home.quest;
import java.util.ArrayList;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.control.FControl;
@@ -49,7 +48,7 @@ public enum CSubmenuQuestDecks implements ICDoc {
VSubmenuQuestDecks.SINGLETON_INSTANCE.getBtnNewDeck().setCommand(new Command() {
@Override
public void execute() {
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorQuest(AllZone.getQuest()));
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorQuest(Singletons.getModel().getQuest()));
FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_QUEST);
}
});
@@ -61,7 +60,7 @@ public enum CSubmenuQuestDecks implements ICDoc {
@Override
public void update() {
final VSubmenuQuestDecks view = VSubmenuQuestDecks.SINGLETON_INSTANCE;
final QuestController qData = AllZone.getQuest();
final QuestController qData = Singletons.getModel().getQuest();
boolean hasQuest = qData.getAssets() != null;
// Retrieve and set all decks
view.getLstDecks().setDecks(hasQuest ? qData.getMyDecks() : new ArrayList<Deck>());
@@ -108,7 +107,7 @@ public enum CSubmenuQuestDecks implements ICDoc {
*/
@Override
public Command getCommandOnSelect() {
final QuestController qc = AllZone.getQuest();
final QuestController qc = Singletons.getModel().getQuest();
return new Command() {
@Override
public void execute() {

View File

@@ -57,11 +57,11 @@ public class SSubmenuQuestUtil {
* @return a int.
*/
public static int nextChallengeInWins() {
final QuestController qData = AllZone.getQuest();
final QuestController qData = Singletons.getModel().getQuest();
final int challengesPlayed = qData.getAchievements().getChallengesPlayed();
final int wins = qData.getAchievements().getWin();
final int turnsToUnlock = AllZone.getQuest().getChallengesManager().getTurnsToUnlockChallenge();
final int turnsToUnlock = Singletons.getModel().getQuest().getChallengesManager().getTurnsToUnlockChallenge();
final int delta;
// First challenge unlocks after minimum wins reached.
@@ -135,7 +135,7 @@ public class SSubmenuQuestUtil {
/** Updates stats, pets panels for both duels and challenges. */
public static void updateStatsAndPet() {
final QuestController qCtrl = AllZone.getQuest();
final QuestController qCtrl = Singletons.getModel().getQuest();
final QuestAchievements qA = qCtrl.getAchievements();
final QuestAssets qS = qCtrl.getAssets();
@@ -196,8 +196,8 @@ public class SSubmenuQuestUtil {
public static Deck getCurrentDeck() {
Deck d = null;
if (AllZone.getQuest().getAssets() != null) {
d = AllZone.getQuest().getMyDecks().get(
if (Singletons.getModel().getQuest().getAssets() != null) {
d = Singletons.getModel().getQuest().getMyDecks().get(
Singletons.getModel().getQuestPreferences().getPreference(QPref.CURRENT_DECK));
}
@@ -207,7 +207,7 @@ public class SSubmenuQuestUtil {
/** */
public static void showSpellShop() {
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(
new CEditorQuestCardShop(AllZone.getQuest()));
new CEditorQuestCardShop(Singletons.getModel().getQuest()));
FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_QUEST);
}
@@ -219,7 +219,7 @@ public class SSubmenuQuestUtil {
/** */
public static void startGame() {
final QuestController qData = AllZone.getQuest();
final QuestController qData = Singletons.getModel().getQuest();
final QuestEvent event = selectedOpponent.getEvent();
SwingUtilities.invokeLater(new Runnable() {

View File

@@ -87,7 +87,7 @@ public enum CSubmenuConstructed implements ICDoc {
}
};
private final QuestController quest = AllZone.getQuest();
private final QuestController quest = Singletons.getModel().getQuest();
static {
COLOR_VALS.clear();

View File

@@ -114,12 +114,12 @@ public class ControlWinLose {
List<GameSummary> games = Singletons.getModel().getMatchState().getGamesPlayed();
if ( games.isEmpty() ) return;
GameSummary lastGame = games.get(games.size()-1);
for (Player p: AllZone.getPlayersInGame()) {
for (Player p: Singletons.getModel().getGameState().getPlayers()) {
if (!p.getName().equals(lastGame.getWinner())) continue; // not a loser
// remove all the lost cards from owners' decks
List<CardPrinted> losses = new ArrayList<CardPrinted>();
for (Player loser: AllZone.getPlayersInGame()) {
for (Player loser: Singletons.getModel().getGameState().getPlayers()) {
if( loser.equals(p)) continue; // not a loser
List<Card> compAntes = loser.getCardsIn(ZoneType.Ante);

View File

@@ -100,7 +100,7 @@ public class QuestWinLoseHandler extends ControlWinLose {
super(view0);
this.view = view0;
matchState = Singletons.getModel().getMatchState();
qData = AllZone.getQuest();
qData = Singletons.getModel().getQuest();
qEvent = qData.getCurrentEvent();
this.wonMatch = matchState.isMatchWonBy(AllZone.getHumanPlayer());
this.isAnte = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
@@ -173,7 +173,7 @@ public class QuestWinLoseHandler extends ControlWinLose {
final List<CardPrinted> antesPrinted = Singletons.getModel().getMatchState().addAnteLost(antes);
for (final CardPrinted ante : antesPrinted) {
//the last param here (should) determine if this is added to the Card Shop
AllZone.getQuest().getCards().sellCard(ante, 0, false);
Singletons.getModel().getQuest().getCards().sellCard(ante, 0, false);
}
this.anteLost(antesPrinted);
}

View File

@@ -68,7 +68,7 @@ public enum VPlayers implements IVDoc {
final JPanel pnl = parentCell.getBody();
pnl.setLayout(new MigLayout("insets 0, gap 0, wrap"));
final List<Player> players = AllZone.getPlayersInGame();
final List<Player> players = Singletons.getModel().getGameState().getPlayers();
this.infoLBLs = new HashMap<Player, JLabel[]>();
final String constraints = "w 97%!, gapleft 2%, gapbottom 1%";

View File

@@ -36,7 +36,6 @@ import javax.swing.SwingConstants;
import javax.swing.border.MatteBorder;
import net.miginfocom.swing.MigLayout;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.control.FControl;
@@ -424,7 +423,7 @@ public class DeckLister extends JPanel implements ILocalRepaint {
private <T extends DeckBase> void editDeck(final Deck d0) {
switch (this.gametype) {
case Quest:
final CEditorQuest qEditor = new CEditorQuest(AllZone.getQuest());
final CEditorQuest qEditor = new CEditorQuest(Singletons.getModel().getQuest());
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(qEditor);
FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_QUEST);
break;
@@ -472,8 +471,8 @@ public class DeckLister extends JPanel implements ILocalRepaint {
} else if (this.gametype.equals(GameType.Sealed)) {
deckManager.getSealed().delete(d0.getName());
} else if (this.gametype.equals(GameType.Quest)) {
AllZone.getQuest().getMyDecks().delete(d0.getName());
AllZone.getQuest().save();
Singletons.getModel().getQuest().getMyDecks().delete(d0.getName());
Singletons.getModel().getQuest().save();
} else {
deckManager.getConstructed().delete(d0.getName());
}

View File

@@ -22,8 +22,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import forge.AllZone;
import forge.Card;
import forge.Singletons;
import forge.game.GameSummary;
import forge.game.GameType;
import forge.game.player.Player;
@@ -184,7 +184,7 @@ public class FMatchState {
* @since 1.2.3
*/
public final void addAnteWonToCardPool() {
AllZone.getQuest().getCards().addAllCards(antesWon);
Singletons.getModel().getQuest().getCards().addAllCards(antesWon);
}
/**

View File

@@ -49,6 +49,7 @@ import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
import forge.quest.QuestController;
import forge.quest.data.QuestPreferences;
import forge.util.Aggregates;
import forge.util.FileUtil;
@@ -83,6 +84,8 @@ public enum FModel {
private final GameState gameState;
private final FMatchState matchState;
private GauntletData gauntletData;
private final QuestController quest;
private final EditionCollection editions;
private final FormatCollection formats;
@@ -144,6 +147,7 @@ public enum FModel {
this.blocks = new StorageView<CardBlock>(new CardBlock.Reader("res/blockdata/blocks.txt", editions));
this.fantasyBlocks = new StorageView<CardBlock>(new CardBlock.Reader("res/blockdata/fantasyblocks.txt", editions));
this.quest = new QuestController();
// TODO - there's got to be a better place for this...oblivion?
Preferences.DEV_MODE = this.preferences.getPrefBoolean(FPref.DEV_MODE_ENABLED);
@@ -159,6 +163,10 @@ public enum FModel {
this.loadDynamicGamedata();
}
public final QuestController getQuest() {
return quest;
}
/**
* Tests if draft upload is technically possible.
* Separate thread, no more hangs when network connection is limited

View File

@@ -28,7 +28,7 @@ import com.google.common.collect.Iterables;
import forge.AllZone;
import forge.Singletons;
import forge.card.BoosterGenerator;
import forge.card.CardRulesPredicates;
import forge.card.CardRules;
@@ -260,8 +260,8 @@ public final class BoosterUtils {
};
Predicate<CardPrinted> colorPred = Predicates.compose(col, CardPrinted.FN_GET_RULES);
Predicate<CardPrinted> rarAndColor = Predicates.and(rar, colorPred);
if (AllZone.getQuest().getFormat() != null) {
rarAndColor = Predicates.and(AllZone.getQuest().getFormat().getFilterPrinted(), rarAndColor);
if (Singletons.getModel().getQuest().getFormat() != null) {
rarAndColor = Predicates.and(Singletons.getModel().getQuest().getFormat().getFilterPrinted(), rarAndColor);
}
return new UnOpenedProduct(openWay, new BoosterGenerator(rarAndColor)); // qty))
}

View File

@@ -27,7 +27,6 @@ import java.util.Random;
import org.apache.commons.lang3.StringUtils;
import forge.AllZone;
import forge.Singletons;
import forge.deck.Deck;
import forge.deck.io.DeckSerializer;
@@ -116,11 +115,11 @@ public class QuestEventManager {
*/
public final List<QuestEventDuel> generateDuels() {
final QuestPreferences qpref = Singletons.getModel().getQuestPreferences();
if (AllZone.getQuest().getAchievements() == null) {
if (Singletons.getModel().getQuest().getAchievements() == null) {
return null;
}
final QuestController qCtrl = AllZone.getQuest();
final QuestController qCtrl = Singletons.getModel().getQuest();
final int cntWins = qCtrl.getAchievements().getWin();
final int index = qCtrl.getAchievements().getDifficulty();
@@ -164,7 +163,7 @@ public class QuestEventManager {
* @return a {@link java.util.List} object.
*/
public final List<QuestEventChallenge> generateChallenges() {
final QuestController qCtrl = AllZone.getQuest();
final QuestController qCtrl = Singletons.getModel().getQuest();
final QuestAchievements achievements = qCtrl.getAchievements();
final List<QuestEventChallenge> challengeOpponents = new ArrayList<QuestEventChallenge>();
final List<Integer> unlockedChallengeIds = new ArrayList<Integer>();
@@ -212,11 +211,11 @@ public class QuestEventManager {
* @return int
*/
public int getTurnsToUnlockChallenge() {
if (AllZone.getQuest().getAssets().hasItem(QuestItemType.ZEPPELIN)) {
if (Singletons.getModel().getQuest().getAssets().hasItem(QuestItemType.ZEPPELIN)) {
return 8;
}
// User may have MAP and ZEPPELIN, so MAP must be tested second.
else if (AllZone.getQuest().getAssets().hasItem(QuestItemType.MAP)) {
else if (Singletons.getModel().getQuest().getAssets().hasItem(QuestItemType.MAP)) {
return 9;
}

View File

@@ -41,7 +41,7 @@ import org.xml.sax.SAXException;
import com.thoughtworks.xstream.XStream;
import forge.AllZone;
import forge.Singletons;
import forge.quest.QuestController;
import forge.quest.data.QuestAssets;
import forge.util.IgnoringXStream;
@@ -173,7 +173,7 @@ public class QuestBazaarManager {
final List<IQuestBazaarItem> ret = new ArrayList<IQuestBazaarItem>();
QuestAssets qA = AllZone.getQuest().getAssets();
QuestAssets qA = Singletons.getModel().getQuest().getAssets();
for (final IQuestBazaarItem purchasable : itemsOnStalls.get(stallName)) {
if (purchasable.isAvailableForPurchase(qA)) {
ret.add(purchasable);

View File

@@ -16,7 +16,6 @@ import javax.swing.border.LineBorder;
import net.miginfocom.swing.MigLayout;
import forge.AllZone;
import forge.Singletons;
import forge.control.FControl;
import forge.gui.deckeditor.VDeckEditorUI;
@@ -211,7 +210,7 @@ public enum FView {
/** */
private void cacheUIStates() {
FView.this.bazaar = new ViewBazaarUI(AllZone.getQuest().getBazaar());
FView.this.bazaar = new ViewBazaarUI(Singletons.getModel().getQuest().getBazaar());
VMatchUI.SINGLETON_INSTANCE.instantiate();
VHomeUI.SINGLETON_INSTANCE.instantiate();
VDeckEditorUI.SINGLETON_INSTANCE.instantiate();