Match UI multiplayer go for takeoff.

- Up to 8 fields can be used
- Up to 4 hands can be used
- Multiplayer submenu added in home screen

Please delete your old match_preferred.xml layout; old match layouts are invalid.
This commit is contained in:
Doublestrike
2012-10-13 07:01:29 +00:00
parent 9e675ff36c
commit e69ecb7abc
21 changed files with 626 additions and 117 deletions

4
.gitattributes vendored
View File

@@ -12744,6 +12744,7 @@ src/main/java/forge/gui/framework/SLayoutIO.java -text
src/main/java/forge/gui/framework/SOverflowUtil.java -text src/main/java/forge/gui/framework/SOverflowUtil.java -text
src/main/java/forge/gui/framework/SRearrangingUtil.java -text src/main/java/forge/gui/framework/SRearrangingUtil.java -text
src/main/java/forge/gui/framework/SResizingUtil.java -text src/main/java/forge/gui/framework/SResizingUtil.java -text
src/main/java/forge/gui/framework/VEmptyDoc.java -text
src/main/java/forge/gui/framework/package-info.java svneol=native#text/plain src/main/java/forge/gui/framework/package-info.java svneol=native#text/plain
src/main/java/forge/gui/home/CMainMenu.java -text src/main/java/forge/gui/home/CMainMenu.java -text
src/main/java/forge/gui/home/EMenuGroup.java -text src/main/java/forge/gui/home/EMenuGroup.java -text
@@ -12762,6 +12763,8 @@ src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletBuild.java -text
src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletContests.java -text src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletContests.java -text
src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletLoad.java -text src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletLoad.java -text
src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletQuick.java -text src/main/java/forge/gui/home/gauntlet/VSubmenuGauntletQuick.java -text
src/main/java/forge/gui/home/multiplayer/CSubmenuMultiTest.java -text
src/main/java/forge/gui/home/multiplayer/VSubmenuMultiTest.java -text
src/main/java/forge/gui/home/package-info.java svneol=native#text/plain src/main/java/forge/gui/home/package-info.java svneol=native#text/plain
src/main/java/forge/gui/home/quest/CSubmenuChallenges.java -text src/main/java/forge/gui/home/quest/CSubmenuChallenges.java -text
src/main/java/forge/gui/home/quest/CSubmenuDuels.java -text src/main/java/forge/gui/home/quest/CSubmenuDuels.java -text
@@ -12818,6 +12821,7 @@ src/main/java/forge/gui/match/controllers/CPicture.java -text
src/main/java/forge/gui/match/controllers/CPlayers.java -text src/main/java/forge/gui/match/controllers/CPlayers.java -text
src/main/java/forge/gui/match/controllers/CStack.java -text src/main/java/forge/gui/match/controllers/CStack.java -text
src/main/java/forge/gui/match/controllers/package-info.java svneol=native#text/plain src/main/java/forge/gui/match/controllers/package-info.java svneol=native#text/plain
src/main/java/forge/gui/match/nonsingleton/CEmptyDoc.java -text
src/main/java/forge/gui/match/nonsingleton/CField.java -text src/main/java/forge/gui/match/nonsingleton/CField.java -text
src/main/java/forge/gui/match/nonsingleton/CHand.java -text src/main/java/forge/gui/match/nonsingleton/CHand.java -text
src/main/java/forge/gui/match/nonsingleton/VField.java -text src/main/java/forge/gui/match/nonsingleton/VField.java -text

View File

@@ -17,6 +17,7 @@
<doc>HOME_GAUNTLETLOAD</doc> <doc>HOME_GAUNTLETLOAD</doc>
<doc>HOME_GAUNTLETQUICK</doc> <doc>HOME_GAUNTLETQUICK</doc>
<doc>HOME_GAUNTLETCONTESTS</doc> <doc>HOME_GAUNTLETCONTESTS</doc>
<doc>HOME_MULTITEST</doc>
<doc>HOME_CONSTRUCTED</doc> <doc>HOME_CONSTRUCTED</doc>
<doc>HOME_DRAFT</doc> <doc>HOME_DRAFT</doc>
<doc>HOME_SEALED</doc> <doc>HOME_SEALED</doc>

View File

@@ -13,16 +13,16 @@
<doc>BUTTON_DOCK</doc> <doc>BUTTON_DOCK</doc>
</cell> </cell>
<cell x="0.2" y="0.0" w="0.6" h="0.364"> <cell x="0.2" y="0.0" w="0.6" h="0.364">
<doc>FIELD_0</doc> <doc>FIELD_1</doc>
</cell> </cell>
<cell x="0.2" y="0.732" w="0.6" h="0.268"> <cell x="0.2" y="0.732" w="0.6" h="0.268">
<doc>HAND_1</doc> <doc>HAND_0</doc>
</cell> </cell>
<cell x="0.8" y="0.0" w="0.2" h="0.466"> <cell x="0.8" y="0.0" w="0.2" h="0.466">
<doc>CARD_DETAIL</doc> <doc>CARD_DETAIL</doc>
</cell> </cell>
<cell x="0.2" y="0.364" w="0.6" h="0.368"> <cell x="0.2" y="0.364" w="0.6" h="0.368">
<doc>FIELD_1</doc> <doc>FIELD_0</doc>
</cell> </cell>
<cell x="0.8" y="0.466" w="0.2" h="0.534"> <cell x="0.8" y="0.466" w="0.2" h="0.534">
<doc>CARD_PICTURE</doc> <doc>CARD_PICTURE</doc>

View File

@@ -271,6 +271,7 @@ public enum FControl {
if (children.length != 0) { children[0].setSize(display.getSize()); } if (children.length != 0) { children[0].setSize(display.getSize()); }
} }
/** @return {@link forge.game.player.Player} */
public Player getPlayer() { public Player getPlayer() {
return AllZone.getHumanPlayer(); return AllZone.getHumanPlayer();
} }

View File

@@ -63,6 +63,7 @@ public class GameNew {
newGameCleanup(); newGameCleanup();
newMatchCleanup(); newMatchCleanup();
Singletons.getModel().getPreferences().actuateMatchPreferences();
Card.resetUniqueNumber(); Card.resetUniqueNumber();
for( PlayerStartsGame p : players ) { for( PlayerStartsGame p : players ) {
@@ -284,9 +285,9 @@ public class GameNew {
private static void newMatchCleanup() { private static void newMatchCleanup() {
if (Singletons.getModel().getMatchState().getGamesPlayedCount() != 0) { return; } if (Singletons.getModel().getMatchState().getGamesPlayedCount() != 0) { return; }
// TODO restore this functionality!!! // TODO restore this functionality!!!
//VMatchUI.SINGLETON_INSTANCE.getViewDevMode().getDocument().setVisible(Preferences.DEV_MODE); //VMatchUI.SINGLETON_INSTANCE.getViewDevMode().getDocument().setVisible(Preferences.DEV_MODE);
final List<VField> allFields = VMatchUI.SINGLETON_INSTANCE.getFieldViews(); final List<VField> allFields = VMatchUI.SINGLETON_INSTANCE.getFieldViews();
for (final VField field : allFields) { for (final VField field : allFields) {
@@ -297,8 +298,6 @@ public class GameNew {
VAntes.SINGLETON_INSTANCE.clearAnteCards(); VAntes.SINGLETON_INSTANCE.clearAnteCards();
AllZone.getInputControl().resetInput(); AllZone.getInputControl().resetInput();
Singletons.getModel().getMatchState().reset(); Singletons.getModel().getMatchState().reset();
Singletons.getModel().getPreferences().actuateMatchPreferences();
} }
// this is where the computer cheats // this is where the computer cheats

View File

@@ -26,7 +26,6 @@ import com.google.common.base.Predicate;
import forge.AllZone; import forge.AllZone;
import forge.AllZoneUtil; import forge.AllZoneUtil;
import forge.Card; import forge.Card;
import forge.CardLists; import forge.CardLists;
import forge.CardPredicates.Presets; import forge.CardPredicates.Presets;
import forge.Singletons; import forge.Singletons;
@@ -426,8 +425,8 @@ public class PhaseUtil {
final Player p = Singletons.getModel().getGameState().getPhaseHandler().getPlayerTurn(); final Player p = Singletons.getModel().getGameState().getPhaseHandler().getPlayerTurn();
final CMatchUI t = CMatchUI.SINGLETON_INSTANCE; final CMatchUI t = CMatchUI.SINGLETON_INSTANCE;
// Index of field; computer is 0, human is 1 // Index of field; computer is 1, human is 0
int i = p.isComputer() ? 0 : 1; int i = p.isComputer() ? 1 : 0;
switch(s) { switch(s) {
case UPKEEP: case UPKEEP:

View File

@@ -30,7 +30,6 @@ import com.google.common.collect.Iterables;
import forge.AllZone; import forge.AllZone;
import forge.AllZoneUtil; import forge.AllZoneUtil;
import forge.Card; import forge.Card;
import forge.CardLists; import forge.CardLists;
import forge.CardPredicates; import forge.CardPredicates;
import forge.CardPredicates.Presets; import forge.CardPredicates.Presets;

View File

@@ -271,6 +271,7 @@ public final class DragCell extends JPanel implements ILocalRepaint {
/** Adds a document to the tabs. /** Adds a document to the tabs.
* @param doc0 &emsp; {@link forge.gui.framework.IVDoc} */ * @param doc0 &emsp; {@link forge.gui.framework.IVDoc} */
public void addDoc(final IVDoc doc0) { public void addDoc(final IVDoc doc0) {
if (doc0 instanceof VEmptyDoc) { return; }
allDocs.add(doc0); allDocs.add(doc0);
doc0.setParentCell(this); doc0.setParentCell(this);
pnlHead.add(doc0.getTabLabel(), "h 100%!, gap " + tabPaddingPx + "px " + tabPaddingPx + "px 0 0", allDocs.size() - 1); pnlHead.add(doc0.getTabLabel(), "h 100%!, gap " + tabPaddingPx + "px " + tabPaddingPx + "px 0 0", allDocs.size() - 1);

View File

@@ -16,6 +16,7 @@ import forge.gui.home.gauntlet.VSubmenuGauntletBuild;
import forge.gui.home.gauntlet.VSubmenuGauntletContests; import forge.gui.home.gauntlet.VSubmenuGauntletContests;
import forge.gui.home.gauntlet.VSubmenuGauntletLoad; import forge.gui.home.gauntlet.VSubmenuGauntletLoad;
import forge.gui.home.gauntlet.VSubmenuGauntletQuick; import forge.gui.home.gauntlet.VSubmenuGauntletQuick;
import forge.gui.home.multiplayer.VSubmenuMultiTest;
import forge.gui.home.quest.VSubmenuChallenges; import forge.gui.home.quest.VSubmenuChallenges;
import forge.gui.home.quest.VSubmenuDuels; import forge.gui.home.quest.VSubmenuDuels;
import forge.gui.home.quest.VSubmenuQuestData; import forge.gui.home.quest.VSubmenuQuestData;
@@ -69,6 +70,7 @@ public enum EDocID { /** */
HOME_GAUNTLETLOAD (VSubmenuGauntletLoad.SINGLETON_INSTANCE), /** */ HOME_GAUNTLETLOAD (VSubmenuGauntletLoad.SINGLETON_INSTANCE), /** */
HOME_GAUNTLETQUICK (VSubmenuGauntletQuick.SINGLETON_INSTANCE), /** */ HOME_GAUNTLETQUICK (VSubmenuGauntletQuick.SINGLETON_INSTANCE), /** */
HOME_GAUNTLETCONTESTS (VSubmenuGauntletContests.SINGLETON_INSTANCE), /** */ HOME_GAUNTLETCONTESTS (VSubmenuGauntletContests.SINGLETON_INSTANCE), /** */
HOME_MULTITEST (VSubmenuMultiTest.SINGLETON_INSTANCE), /** */
HOME_PREFERENCES (VSubmenuPreferences.SINGLETON_INSTANCE), /** */ HOME_PREFERENCES (VSubmenuPreferences.SINGLETON_INSTANCE), /** */
HOME_AVATARS (VSubmenuAvatars.SINGLETON_INSTANCE), /** */ HOME_AVATARS (VSubmenuAvatars.SINGLETON_INSTANCE), /** */
HOME_DECKEDITOR (VSubmenuDeckEditor.SINGLETON_INSTANCE), /** */ HOME_DECKEDITOR (VSubmenuDeckEditor.SINGLETON_INSTANCE), /** */
@@ -91,10 +93,18 @@ public enum EDocID { /** */
// Non-user battlefields (AI or teammate), use setDoc to register. // Non-user battlefields (AI or teammate), use setDoc to register.
FIELD_0 (null), /** */ FIELD_0 (null), /** */
FIELD_1 (null), /** */ FIELD_1 (null), /** */
FIELD_2 (null), /** */
FIELD_3 (null), /** */
FIELD_4 (null), /** */
FIELD_5 (null), /** */
FIELD_6 (null), /** */
FIELD_7 (null), /** */
// Non-user hands (AI or teammate), use setDoc to register. // Non-user hands (AI or teammate), use setDoc to register.
HAND_0 (null), /** */ HAND_0 (null), /** */
HAND_1 (null); HAND_1 (null), /** */
HAND_2 (null), /** */
HAND_3 (null);
// End enum declarations, start enum methods. // End enum declarations, start enum methods.
private IVDoc vDoc; private IVDoc vDoc;

View File

@@ -0,0 +1,71 @@
package forge.gui.framework;
import forge.gui.match.nonsingleton.CEmptyDoc;
/**
* An intentionally empty IVDoc to fill field slots unused
* by the current layout of a match UI.
*/
public class VEmptyDoc implements IVDoc {
// Fields used with interface IVDoc
private final CEmptyDoc control;
private final EDocID docID;
/**
* An intentionally empty IVDoc to fill field slots unused
* by the current layout of a match UI.
*
* @param id0 EDocID
*/
public VEmptyDoc(final EDocID id0) {
id0.setDoc(this);
docID = id0;
control = new CEmptyDoc();
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getDocumentID()
*/
@Override
public EDocID getDocumentID() {
return docID;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getTabLabel()
*/
@Override
public DragTab getTabLabel() {
return null;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getLayoutControl()
*/
@Override
public ICDoc getLayoutControl() {
return control;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell)
*/
@Override
public void setParentCell(DragCell cell0) {
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getParentCell()
*/
@Override
public DragCell getParentCell() {
return null;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#populate()
*/
@Override
public void populate() {
}
}

View File

@@ -11,6 +11,7 @@ public enum EMenuGroup { /** */
SANCTIONED ("Sanctioned Game Formats"), /** */ SANCTIONED ("Sanctioned Game Formats"), /** */
QUEST ("Quest Mode"), /** */ QUEST ("Quest Mode"), /** */
GAUNTLET ("Gauntlets"), /** */ GAUNTLET ("Gauntlets"), /** */
MULTIPLAYER ("Multiplayer"), /** */
SETTINGS ("Game Settings"), /** */ SETTINGS ("Game Settings"), /** */
UTILITIES ("Tools"); UTILITIES ("Tools");

View File

@@ -46,6 +46,7 @@ import forge.gui.home.gauntlet.VSubmenuGauntletBuild;
import forge.gui.home.gauntlet.VSubmenuGauntletContests; import forge.gui.home.gauntlet.VSubmenuGauntletContests;
import forge.gui.home.gauntlet.VSubmenuGauntletLoad; import forge.gui.home.gauntlet.VSubmenuGauntletLoad;
import forge.gui.home.gauntlet.VSubmenuGauntletQuick; import forge.gui.home.gauntlet.VSubmenuGauntletQuick;
import forge.gui.home.multiplayer.VSubmenuMultiTest;
import forge.gui.home.quest.VSubmenuChallenges; import forge.gui.home.quest.VSubmenuChallenges;
import forge.gui.home.quest.VSubmenuDuels; import forge.gui.home.quest.VSubmenuDuels;
import forge.gui.home.quest.VSubmenuQuestData; import forge.gui.home.quest.VSubmenuQuestData;
@@ -109,6 +110,8 @@ public enum VMainMenu implements IVDoc {
allSubmenus.add(VSubmenuGauntletLoad.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuGauntletLoad.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuGauntletContests.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuGauntletContests.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuMultiTest.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuPreferences.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuPreferences.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuAvatars.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuAvatars.SINGLETON_INSTANCE);

View File

@@ -0,0 +1,112 @@
package forge.gui.home.multiplayer;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import forge.AllZone;
import forge.Command;
import forge.Singletons;
import forge.deck.Deck;
import forge.deck.DeckgenUtil;
import forge.game.GameNew;
import forge.game.GameType;
import forge.game.PlayerStartsGame;
import forge.game.player.PlayerType;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
import forge.gui.match.CMatchUI;
/**
* Controls the deck editor submenu option in the home UI.
*
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
*
*/
public enum CSubmenuMultiTest implements ICDoc {
/** */
SINGLETON_INSTANCE;
private final VSubmenuMultiTest view = VSubmenuMultiTest.SINGLETON_INSTANCE;
/* (non-Javadoc)
* @see forge.control.home.IControlSubmenu#update()
*/
@Override
public void initialize() {
// Checkbox event handling
view.getBtnStart().addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent arg0) {
start();
}
});
}
/* (non-Javadoc)
* @see forge.control.home.IControlSubmenu#update()
*/
@Override
public void update() { }
/* (non-Javadoc)
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
*/
@Override
public Command getCommandOnSelect() {
return null;
}
private void start() {
// Retrieve selections
JRadioButton radTemp = null;
final int numFields;
final int numHands;
for (JRadioButton rad : view.getFieldRadios()) {
if (rad.isSelected()) { radTemp = rad; break; } }
numFields = (radTemp == null ? 2 : Integer.valueOf(radTemp.getText()));
radTemp = null;
for (JRadioButton rad : view.getHandRadios()) {
if (rad.isSelected()) { radTemp = rad; break; } }
numHands = (radTemp == null ? 1 : Integer.valueOf(radTemp.getText()));
// Boilerplate start game code
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
SOverlayUtils.startGameOverlay();
SOverlayUtils.showOverlay();
}
});
final SwingWorker<Object, Void> worker = new SwingWorker<Object, Void>() {
@Override
public Object doInBackground() {
Deck humanDeck = DeckgenUtil.getRandomColorDeck(PlayerType.HUMAN);
Deck aiDeck = DeckgenUtil.getRandomColorDeck(PlayerType.COMPUTER);
CMatchUI.SINGLETON_INSTANCE.initMatch(numFields, numHands);
Singletons.getModel().getMatchState().setGameType(GameType.Constructed);
if (humanDeck != null && aiDeck != null) {
GameNew.newGame(new PlayerStartsGame(AllZone.getHumanPlayer(), humanDeck),
new PlayerStartsGame(AllZone.getComputerPlayer(), aiDeck));
}
return null;
}
@Override
public void done() {
SOverlayUtils.hideOverlay();
}
};
worker.execute();
}
}

View File

@@ -0,0 +1,180 @@
package forge.gui.home.multiplayer;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import net.miginfocom.swing.MigLayout;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.gui.framework.ICDoc;
import forge.gui.home.EMenuGroup;
import forge.gui.home.IVSubmenu;
import forge.gui.home.StartButton;
import forge.gui.toolbox.FLabel;
import forge.gui.toolbox.FPanel;
import forge.gui.toolbox.FRadioButton;
/**
* Assembles Swing components of deck editor submenu option singleton.
*
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
*
*/
public enum VSubmenuMultiTest implements IVSubmenu {
/** */
SINGLETON_INSTANCE;
// Fields used with interface IVDoc
private DragCell parentCell;
private final DragTab tab = new DragTab("Multiplayer Test");
private final JPanel pnlFields, pnlHands;
/** */
private final List<JRadioButton> fieldRadios = new ArrayList<JRadioButton>();
private final List<JRadioButton> handRadios = new ArrayList<JRadioButton>();
private final StartButton btnStart = new StartButton();
private final ButtonGroup grpFields = new ButtonGroup();
private final ButtonGroup grpHands = new ButtonGroup();
private VSubmenuMultiTest() {
FRadioButton temp;
for (int i = 1; i < 8; i++) {
temp = new FRadioButton();
temp.setText(String.valueOf(i + 1));
fieldRadios.add(temp);
grpFields.add(temp);
}
for (int i = 0; i < 4; i++) {
temp = new FRadioButton();
temp.setText(String.valueOf(i + 1));
handRadios.add(temp);
grpHands.add(temp);
}
pnlFields = new FPanel();
pnlFields.setLayout(new MigLayout("insets 0, gap 0, wrap"));
pnlFields.add(new FLabel.Builder().text("Player panels:").build(), "w 100px!, h 30px!");
for (JRadioButton rad : fieldRadios) {
pnlFields.add(rad, "w 100px!, h 30px!, gap 30px 0 0 0");
}
pnlHands = new FPanel();
pnlHands.setLayout(new MigLayout("insets 0, gap 0, wrap"));
pnlHands.add(new FLabel.Builder().text("Hand panels:").build(), "w 100px!, h 30px!");
for (JRadioButton rad : handRadios) {
pnlHands.add(rad, "w 100px!, h 30px!, gap 30px 0 0 0");
}
handRadios.get(0).setSelected(true);
fieldRadios.get(0).setSelected(true);
}
/** @return {@link javax.swing.JButton} */
public JButton getBtnStart() {
return btnStart;
}
/** @return {@link java.util.List} */
public List<JRadioButton> getFieldRadios() {
return fieldRadios;
}
/** @return {@link java.util.List} */
public List<JRadioButton> getHandRadios() {
return handRadios;
}
/* (non-Javadoc)
* @see forge.view.home.IViewSubmenu#populate()
*/
@Override
public void populate() {
parentCell.getBody().setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
parentCell.getBody().add(pnlFields, "w 41%!, gap 6% 6% 50px 0, growy, pushy");
parentCell.getBody().add(pnlHands, "w 41%!, gap 0 0 50px 0, growy, pushy");
parentCell.getBody().add(new FLabel.Builder()
.text("Starts a new game with preconstructed 2 color decks for each field.")
.build(), "gap 0 0 50px 5px, ax center, span 2");
parentCell.getBody().add(new FLabel.Builder()
.text("Field 0 is Human, the rest are AI [AllZone.getComputerPlayer()].")
.build(), "gap 0 0 0 5px, ax center, span 2");
parentCell.getBody().add(btnStart, "gap 0 0 50px 50px, ax center, span 2");
}
/* (non-Javadoc)
* @see forge.view.home.IViewSubmenu#getGroup()
*/
@Override
public EMenuGroup getGroupEnum() {
return EMenuGroup.MULTIPLAYER;
}
/* (non-Javadoc)
* @see forge.gui.home.IVSubmenu#getMenuTitle()
*/
@Override
public String getMenuTitle() {
return "Testing (Temporary)";
}
/* (non-Javadoc)
* @see forge.gui.home.IVSubmenu#getItemEnum()
*/
@Override
public EDocID getItemEnum() {
return EDocID.HOME_MULTITEST;
}
//========== Overridden from IVDoc
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getDocumentID()
*/
@Override
public EDocID getDocumentID() {
return EDocID.HOME_MULTITEST;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getTabLabel()
*/
@Override
public DragTab getTabLabel() {
return tab;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getLayoutControl()
*/
@Override
public ICDoc getLayoutControl() {
return CSubmenuMultiTest.SINGLETON_INSTANCE;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell)
*/
@Override
public void setParentCell(DragCell cell0) {
this.parentCell = cell0;
}
/* (non-Javadoc)
* @see forge.gui.framework.IVDoc#getParentCell()
*/
@Override
public DragCell getParentCell() {
return parentCell;
}
}

View File

@@ -17,28 +17,21 @@
*/ */
package forge.gui.match; package forge.gui.match;
import java.awt.Image;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.swing.ImageIcon; import forge.AllZone;
import forge.Card; import forge.Card;
import forge.Singletons;
import forge.game.GameType;
import forge.game.phase.PhaseType; import forge.game.phase.PhaseType;
import forge.game.player.Player; import forge.game.player.Player;
import forge.gui.CardContainer; import forge.gui.CardContainer;
import forge.gui.framework.EDocID;
import forge.gui.match.controllers.CDetail; import forge.gui.match.controllers.CDetail;
import forge.gui.match.controllers.CMessage; import forge.gui.match.controllers.CMessage;
import forge.gui.match.controllers.CPicture; import forge.gui.match.controllers.CPicture;
import forge.gui.match.nonsingleton.CField; import forge.gui.match.nonsingleton.CField;
import forge.gui.match.nonsingleton.VField; import forge.gui.match.nonsingleton.VField;
import forge.gui.toolbox.FSkin; import forge.gui.match.nonsingleton.VHand;
import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProps;
import forge.properties.NewConstants;
/** /**
* Constructs instance of match UI controller, used as a single point of * Constructs instance of match UI controller, used as a single point of
@@ -53,19 +46,31 @@ public enum CMatchUI implements CardContainer {
SINGLETON_INSTANCE; SINGLETON_INSTANCE;
/** /**
* Fires up controllers for each component of UI. * Due to be deprecated with new multiplayer changes. Doublestrike 13-10-12.
* *
* @param strAvatarIcon &emsp; Filename of non-default avatar icon, if desired. * @param strAvatarIcon &emsp; Filename of non-default avatar icon, if desired.
* *
*/ */
public void initMatch(final String strAvatarIcon) { public void initMatch(final String strAvatarIcon) {
this.initMatch(2, 1);
}
/**
* Instantiates at a match with a specified number of players
* and hands.
*
* @param numFieldPanels int
* @param numHandPanels int
*/
public void initMatch(int numFieldPanels, int numHandPanels) {
// TODO fix for use with multiplayer
// Update avatars // Update avatars
final String[] indices = Singletons.getModel().getPreferences().getPref(FPref.UI_AVATARS).split(","); /*final String[] indices = Singletons.getModel().getPreferences().getPref(FPref.UI_AVATARS).split(",");
int i = 0; int i = 0;
for (VField view : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) { for (VField view : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) {
final Image img; final Image img;
// Update AI quest icon // Update AI quest icon
if (i != 1 && Singletons.getModel().getMatchState().getGameType() == GameType.Quest) { if (i == 1 && Singletons.getModel().getMatchState().getGameType() == GameType.Quest) {
String filename = ForgeProps.getFile(NewConstants.IMAGE_ICON) + File.separator; String filename = ForgeProps.getFile(NewConstants.IMAGE_ICON) + File.separator;
if (strAvatarIcon != null) { if (strAvatarIcon != null) {
@@ -86,9 +91,47 @@ public enum CMatchUI implements CardContainer {
view.getLblAvatar().setIcon(new ImageIcon(img)); view.getLblAvatar().setIcon(new ImageIcon(img));
view.getLblAvatar().getResizeTimer().start(); view.getLblAvatar().getResizeTimer().start();
}*/
// Instantiate all required field slots (user at 0)
final List<VField> fields = new ArrayList<VField>();
for (int i = 0; i < numFieldPanels; i++) {
switch (i) {
case 0:
fields.add(0, new VField(EDocID.FIELD_0, AllZone.getHumanPlayer()));
fields.get(0).getLayoutControl().initialize();
break;
case 1:
fields.add(1, new VField(EDocID.FIELD_1, AllZone.getComputerPlayer()));
fields.get(1).getLayoutControl().initialize();
break;
default:
// A field must be initialized after it's instantiated, to update player info.
// No player, no init.
fields.add(i, new VField(EDocID.valueOf("FIELD_" + i), null));
} }
} }
// Instantiate all required hand slots (user at 0)
final List<VHand> hands = new ArrayList<VHand>();
for (int i = 0; i < numHandPanels; i++) {
switch (i) {
case 0:
// A hand must be initialized after it's instantiated, to update player info.
// No player, no init.
hands.add(0, new VHand(EDocID.HAND_0, AllZone.getHumanPlayer()));
hands.get(0).getLayoutControl().initialize();
break;
default:
hands.add(i, new VHand(EDocID.valueOf("HAND_" + i), null));
}
}
// Replace old instances
VMatchUI.SINGLETON_INSTANCE.setFieldViews(fields);
VMatchUI.SINGLETON_INSTANCE.setHandViews(hands);
}
/** /**
* Resets all phase buttons in all fields to "inactive", so highlight won't * Resets all phase buttons in all fields to "inactive", so highlight won't
* be drawn on them. "Enabled" state remains the same. * be drawn on them. "Enabled" state remains the same.
@@ -156,8 +199,8 @@ public enum CMatchUI implements CardContainer {
public final boolean stopAtPhase(final Player turn, final PhaseType phase) { public final boolean stopAtPhase(final Player turn, final PhaseType phase) {
final List<CField> fieldControllers = CMatchUI.this.getFieldControls(); final List<CField> fieldControllers = CMatchUI.this.getFieldControls();
// AI field is at index [0] // Index of field; computer is 1, human is 0
int index = turn.isComputer() ? 0 : 1; int index = turn.isComputer() ? 1 : 0;
VField vf = fieldControllers.get(index).getView(); VField vf = fieldControllers.get(index).getView();
switch (phase) { switch (phase) {

View File

@@ -83,6 +83,7 @@ public class ControlWinLose {
// Clear cards off of playing areas // Clear cards off of playing areas
final List<VHand> hands = VMatchUI.SINGLETON_INSTANCE.getHandViews(); final List<VHand> hands = VMatchUI.SINGLETON_INSTANCE.getHandViews();
for (VHand h : hands) { for (VHand h : hands) {
if (h.getPlayer() == null) { continue; }
h.getPlayer().getZone(ZoneType.Battlefield).reset(); h.getPlayer().getZone(ZoneType.Battlefield).reset();
h.getPlayer().getZone(ZoneType.Hand).reset(); h.getPlayer().getZone(ZoneType.Hand).reset();
} }
@@ -124,15 +125,21 @@ public class ControlWinLose {
*/ */
private void executeAnte() { private void executeAnte() {
List<GameSummary> games = Singletons.getModel().getMatchState().getGamesPlayed(); List<GameSummary> games = Singletons.getModel().getMatchState().getGamesPlayed();
if ( games.isEmpty() ) return; if (games.isEmpty()) {
return;
}
GameSummary lastGame = games.get(games.size() - 1); GameSummary lastGame = games.get(games.size() - 1);
for (Player p : Singletons.getModel().getGameState().getPlayers()) { for (Player p : Singletons.getModel().getGameState().getPlayers()) {
if (!p.getName().equals(lastGame.getWinner())) continue; // not a loser if (!p.getName().equals(lastGame.getWinner())) {
continue; // not a loser
}
// remove all the lost cards from owners' decks // remove all the lost cards from owners' decks
List<CardPrinted> losses = new ArrayList<CardPrinted>(); List<CardPrinted> losses = new ArrayList<CardPrinted>();
for (Player loser : Singletons.getModel().getGameState().getPlayers()) { for (Player loser : Singletons.getModel().getGameState().getPlayers()) {
if( loser.equals(p)) continue; // not a loser if (loser.equals(p)) {
continue; // not a loser
}
List<Card> compAntes = loser.getCardsIn(ZoneType.Ante); List<Card> compAntes = loser.getCardsIn(ZoneType.Ante);
Deck cDeck = loser.getDeck(); Deck cDeck = loser.getDeck();

View File

@@ -6,14 +6,13 @@ import java.util.List;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import forge.AllZone;
import forge.Singletons; import forge.Singletons;
import forge.gui.framework.DragCell; import forge.gui.framework.DragCell;
import forge.gui.framework.EDocID; import forge.gui.framework.EDocID;
import forge.gui.framework.IVDoc;
import forge.gui.framework.IVTopLevelUI; import forge.gui.framework.IVTopLevelUI;
import forge.gui.framework.SLayoutIO; import forge.gui.framework.SLayoutIO;
import forge.gui.framework.SRearrangingUtil; import forge.gui.framework.SRearrangingUtil;
import forge.gui.framework.VEmptyDoc;
import forge.gui.match.nonsingleton.VField; import forge.gui.match.nonsingleton.VField;
import forge.gui.match.nonsingleton.VHand; import forge.gui.match.nonsingleton.VHand;
import forge.gui.match.views.VDev; import forge.gui.match.views.VDev;
@@ -32,17 +31,26 @@ public enum VMatchUI implements IVTopLevelUI {
/** */ /** */
SINGLETON_INSTANCE; SINGLETON_INSTANCE;
// Instantiate non-singleton tab instances private List<VField> lstFields = new ArrayList<VField>();
private final IVDoc field0 = new VField(EDocID.FIELD_0, AllZone.getComputerPlayer()); private List<VHand> lstHands = new ArrayList<VHand>();
private final IVDoc field1 = new VField(EDocID.FIELD_1, AllZone.getHumanPlayer());
private final IVDoc hand0 = new VHand(EDocID.HAND_0, AllZone.getComputerPlayer());
private final IVDoc hand1 = new VHand(EDocID.HAND_1, AllZone.getHumanPlayer());
// Other instantiations // Other instantiations
private final CMatchUI control = null; private final CMatchUI control = null;
private VMatchUI() {
// Create empty docs for all field slots
for (int i = 0; i < 8; i++) {
EDocID.valueOf("FIELD_" + i).setDoc(
new VEmptyDoc(EDocID.valueOf("FIELD_" + i)));
}
// Create empty docs for all hand slots
for (int i = 0; i < 4; i++) {
EDocID.valueOf("HAND_" + i).setDoc(
new VEmptyDoc(EDocID.valueOf("HAND_" + i)));
}
}
/** */ /** */
@Override @Override
public void instantiate() { public void instantiate() {
@@ -73,6 +81,31 @@ public enum VMatchUI implements IVTopLevelUI {
} }
} }
// Add extra players alternatively to existing user/AI field panels.
for (int i = 2; i < lstFields.size(); i++) {
// If already in layout, no need to add again.
if (lstFields.get(i).getParentCell() != null) {
continue;
}
if (i % 2 == 0) {
lstFields.get(0).getParentCell().addDoc(lstFields.get(i));
}
else {
lstFields.get(1).getParentCell().addDoc(lstFields.get(i));
}
}
// Add extra hands to existing hand panel.
for (int i = 0; i < lstHands.size(); i++) {
// If already in layout, no need to add again.
if (lstHands.get(i).getParentCell() != null) {
continue;
}
lstHands.get(0).getParentCell().addDoc(lstHands.get(i));
}
// Fill in gaps // Fill in gaps
SwingUtilities.invokeLater(new Runnable() { SwingUtilities.invokeLater(new Runnable() {
@Override @Override
@@ -94,20 +127,24 @@ public enum VMatchUI implements IVTopLevelUI {
return this.control; return this.control;
} }
/** @return {@link java.util.List}<{@link forge.gui.match.nonsigleton.VField}> */ /** @param lst0 List<VField> */
public void setFieldViews(final List<VField> lst0) {
this.lstFields = lst0;
}
/** @return {@link java.util.List}<{@link forge.gui.match.nonsigleton.VHand}> */
public List<VField> getFieldViews() { public List<VField> getFieldViews() {
final List<VField> lst = new ArrayList<VField>(); return lstFields;
lst.add((VField) field0); }
lst.add((VField) field1);
return lst; /** @param lst0 List<VField> */
public void setHandViews(final List<VHand> lst0) {
this.lstHands = lst0;
} }
/** @return {@link java.util.List}<{@link forge.gui.match.nonsigleton.VHand}> */ /** @return {@link java.util.List}<{@link forge.gui.match.nonsigleton.VHand}> */
public List<VHand> getHandViews() { public List<VHand> getHandViews() {
final List<VHand> lst = new ArrayList<VHand>(); return lstHands;
lst.add((VHand) hand0);
lst.add((VHand) hand1);
return lst;
} }
/** @return {@link javax.swing.JButton} */ /** @return {@link javax.swing.JButton} */

View File

@@ -0,0 +1,34 @@
package forge.gui.match.nonsingleton;
import forge.Command;
import forge.gui.framework.ICDoc;
/**
* An intentionally empty ICDoc to fill field slots unused
* by the current layout of a match UI.
*/
public class CEmptyDoc implements ICDoc {
/* (non-Javadoc)
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
*/
@Override
public Command getCommandOnSelect() {
return null;
}
/* (non-Javadoc)
* @see forge.gui.framework.ICDoc#initialize()
*/
@Override
public void initialize() {
}
/* (non-Javadoc)
* @see forge.gui.framework.ICDoc#update()
*/
@Override
public void update() {
}
}

View File

@@ -194,7 +194,7 @@ public class CHand implements ICDoc {
final PlayerZone pZone = (PlayerZone) a; final PlayerZone pZone = (PlayerZone) a;
final HandArea p = view.getHandArea(); final HandArea p = view.getHandArea();
final Rectangle rctLibraryLabel = CMatchUI.SINGLETON_INSTANCE final Rectangle rctLibraryLabel = CMatchUI.SINGLETON_INSTANCE
.getFieldControls().get(1) .getFieldControls().get(0)
.getView().getLblLibrary().getBounds(); .getView().getLblLibrary().getBounds();
final List<Card> c = pZone.getCards(); final List<Card> c = pZone.getCards();

View File

@@ -58,7 +58,13 @@ public class VHand implements IVDoc {
public VHand(final EDocID id0, final Player player0) { public VHand(final EDocID id0, final Player player0) {
docID = id0; docID = id0;
id0.setDoc(this); id0.setDoc(this);
if (player0 == null) {
tab.setText("NO PLAYER Hand");
}
else {
tab.setText(player0.getName() + " Hand"); tab.setText(player0.getName() + " Hand");
}
player = player0; player = player0;

View File

@@ -75,6 +75,7 @@ public class ForgePreferences {
SUBMENU_CURRENTMENU (EMenuItem.CONSTRUCTED.toString()), /** */ SUBMENU_CURRENTMENU (EMenuItem.CONSTRUCTED.toString()), /** */
SUBMENU_SANCTIONED ("false"), /** */ SUBMENU_SANCTIONED ("false"), /** */
SUBMENU_GAUNTLET ("false"), /** */ SUBMENU_GAUNTLET ("false"), /** */
SUBMENU_MULTIPLAYER ("false"), /** */
SUBMENU_QUEST ("false"), /** */ SUBMENU_QUEST ("false"), /** */
SUBMENU_SETTINGS ("false"), /** */ SUBMENU_SETTINGS ("false"), /** */
SUBMENU_UTILITIES ("false"), /** */ SUBMENU_UTILITIES ("false"), /** */
@@ -196,37 +197,37 @@ public class ForgePreferences {
public void writeMatchPreferences() { public void writeMatchPreferences() {
final List<VField> fieldViews = VMatchUI.SINGLETON_INSTANCE.getFieldViews(); final List<VField> fieldViews = VMatchUI.SINGLETON_INSTANCE.getFieldViews();
// AI field is at index [0] // AI field is at index [1]
this.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fieldViews.get(0).getLblUpkeep().getEnabled())); this.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fieldViews.get(1).getLblUpkeep().getEnabled()));
this.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fieldViews.get(0).getLblDraw().getEnabled())); this.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fieldViews.get(1).getLblDraw().getEnabled()));
this.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fieldViews.get(0).getLblMain1().getEnabled())); this.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fieldViews.get(1).getLblMain1().getEnabled()));
this.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fieldViews.get(0).getLblBeginCombat().getEnabled())); this.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fieldViews.get(1).getLblBeginCombat().getEnabled()));
this.setPref(FPref.PHASE_AI_DECLAREATTACKERS, this.setPref(FPref.PHASE_AI_DECLAREATTACKERS,
String.valueOf(fieldViews.get(0).getLblDeclareAttackers().getEnabled()));
this.setPref(FPref.PHASE_AI_DECLAREBLOCKERS,
String.valueOf(fieldViews.get(0).getLblDeclareBlockers().getEnabled()));
this.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fieldViews.get(0).getLblFirstStrike().getEnabled()));
this.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fieldViews.get(0).getLblCombatDamage().getEnabled()));
this.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fieldViews.get(0).getLblEndCombat().getEnabled()));
this.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fieldViews.get(0).getLblMain2().getEnabled()));
this.setPref(FPref.PHASE_AI_EOT, String.valueOf(fieldViews.get(0).getLblEndTurn().getEnabled()));
this.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fieldViews.get(0).getLblCleanup().getEnabled()));
// Human field is at index [1]
this.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fieldViews.get(1).getLblUpkeep().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fieldViews.get(1).getLblDraw().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fieldViews.get(1).getLblMain1().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_BEGINCOMBAT, String.valueOf(fieldViews.get(1).getLblBeginCombat().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_DECLAREATTACKERS,
String.valueOf(fieldViews.get(1).getLblDeclareAttackers().getEnabled())); String.valueOf(fieldViews.get(1).getLblDeclareAttackers().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_DECLAREBLOCKERS, this.setPref(FPref.PHASE_AI_DECLAREBLOCKERS,
String.valueOf(fieldViews.get(1).getLblDeclareBlockers().getEnabled())); String.valueOf(fieldViews.get(1).getLblDeclareBlockers().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_FIRSTSTRIKE, String.valueOf(fieldViews.get(1).getLblFirstStrike().getEnabled())); this.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fieldViews.get(1).getLblFirstStrike().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_COMBATDAMAGE, String.valueOf(fieldViews.get(1).getLblCombatDamage().getEnabled())); this.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fieldViews.get(1).getLblCombatDamage().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_ENDCOMBAT, String.valueOf(fieldViews.get(1).getLblEndCombat().getEnabled())); this.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fieldViews.get(1).getLblEndCombat().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_MAIN2, String.valueOf(fieldViews.get(1).getLblMain2().getEnabled())); this.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fieldViews.get(1).getLblMain2().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_EOT, fieldViews.get(1).getLblEndTurn().getEnabled()); this.setPref(FPref.PHASE_AI_EOT, String.valueOf(fieldViews.get(1).getLblEndTurn().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_CLEANUP, fieldViews.get(1).getLblCleanup().getEnabled()); this.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fieldViews.get(1).getLblCleanup().getEnabled()));
// Human field is at index [0]
this.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fieldViews.get(0).getLblUpkeep().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fieldViews.get(0).getLblDraw().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fieldViews.get(0).getLblMain1().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_BEGINCOMBAT, String.valueOf(fieldViews.get(0).getLblBeginCombat().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_DECLAREATTACKERS,
String.valueOf(fieldViews.get(0).getLblDeclareAttackers().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_DECLAREBLOCKERS,
String.valueOf(fieldViews.get(0).getLblDeclareBlockers().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_FIRSTSTRIKE, String.valueOf(fieldViews.get(0).getLblFirstStrike().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_COMBATDAMAGE, String.valueOf(fieldViews.get(0).getLblCombatDamage().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_ENDCOMBAT, String.valueOf(fieldViews.get(0).getLblEndCombat().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_MAIN2, String.valueOf(fieldViews.get(0).getLblMain2().getEnabled()));
this.setPref(FPref.PHASE_HUMAN_EOT, fieldViews.get(0).getLblEndTurn().getEnabled());
this.setPref(FPref.PHASE_HUMAN_CLEANUP, fieldViews.get(0).getLblCleanup().getEnabled());
final VDev v = VDev.SINGLETON_INSTANCE; final VDev v = VDev.SINGLETON_INSTANCE;
@@ -245,32 +246,32 @@ public class ForgePreferences {
Preferences.UPLOAD_DRAFT = Constant.Runtime.NET_CONN && this.getPrefBoolean(FPref.UI_UPLOAD_DRAFT); Preferences.UPLOAD_DRAFT = Constant.Runtime.NET_CONN && this.getPrefBoolean(FPref.UI_UPLOAD_DRAFT);
// AI field is at index [0] // AI field is at index [0]
fieldViews.get(0).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_UPKEEP)); fieldViews.get(1).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_UPKEEP));
fieldViews.get(0).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DRAW)); fieldViews.get(1).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DRAW));
fieldViews.get(0).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN1)); fieldViews.get(1).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN1));
fieldViews.get(0).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT)); fieldViews.get(1).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT));
fieldViews.get(0).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS)); fieldViews.get(1).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS));
fieldViews.get(0).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS)); fieldViews.get(1).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS));
fieldViews.get(0).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE)); fieldViews.get(1).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE));
fieldViews.get(0).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE)); fieldViews.get(1).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE));
fieldViews.get(0).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT)); fieldViews.get(1).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT));
fieldViews.get(0).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN2)); fieldViews.get(1).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN2));
fieldViews.get(0).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_EOT)); fieldViews.get(1).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_EOT));
fieldViews.get(0).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_CLEANUP)); fieldViews.get(1).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_CLEANUP));
// Human field is at index [1] // Human field is at index [1]
fieldViews.get(1).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP)); fieldViews.get(0).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP));
fieldViews.get(1).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DRAW)); fieldViews.get(0).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DRAW));
fieldViews.get(1).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1)); fieldViews.get(0).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1));
fieldViews.get(1).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT)); fieldViews.get(0).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT));
fieldViews.get(1).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS)); fieldViews.get(0).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS));
fieldViews.get(1).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS)); fieldViews.get(0).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS));
fieldViews.get(1).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE)); fieldViews.get(0).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE));
fieldViews.get(1).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE)); fieldViews.get(0).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE));
fieldViews.get(1).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT)); fieldViews.get(0).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT));
fieldViews.get(1).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2)); fieldViews.get(0).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2));
fieldViews.get(1).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_EOT)); fieldViews.get(0).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_EOT));
fieldViews.get(1).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP)); fieldViews.get(0).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP));
//Singletons.getView().getViewMatch().setLayoutParams(this.getPref(FPref.UI_LAYOUT_PARAMS)); //Singletons.getView().getViewMatch().setLayoutParams(this.getPref(FPref.UI_LAYOUT_PARAMS));
} }