diff --git a/src/main/java/forge/control/input/InputConfirmMulligan.java b/src/main/java/forge/control/input/InputConfirmMulligan.java index 38936142ce1..7b0feab91c0 100644 --- a/src/main/java/forge/control/input/InputConfirmMulligan.java +++ b/src/main/java/forge/control/input/InputConfirmMulligan.java @@ -57,10 +57,10 @@ public class InputConfirmMulligan extends InputSyncronizedBase { StringBuilder sb = new StringBuilder(); if( startingPlayer == player ) { - sb.append("You are going first!\n\n"); + sb.append(player).append(", you are going first!\n\n"); } else { sb.append(startingPlayer.getName()).append(" is going first.\n"); - sb.append("You are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); + sb.append(player).append(", you are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); } if ( isCommander ) { diff --git a/src/main/java/forge/control/input/InputPassPriority.java b/src/main/java/forge/control/input/InputPassPriority.java index 200a968c242..574aee96a28 100644 --- a/src/main/java/forge/control/input/InputPassPriority.java +++ b/src/main/java/forge/control/input/InputPassPriority.java @@ -54,6 +54,7 @@ public class InputPassPriority extends InputBase { final PhaseHandler ph = player.getGame().getPhaseHandler(); final StringBuilder sb = new StringBuilder(); + sb.append("Priority: ").append(player).append("\n").append("\n"); sb.append("Turn : ").append(ph.getPlayerTurn()).append("\n"); sb.append("Phase: ").append(ph.getPhase().Name).append("\n"); sb.append("Stack: "); @@ -63,7 +64,7 @@ public class InputPassPriority extends InputBase { sb.append("Empty"); } sb.append("\n"); - sb.append("Priority: ").append(player); + showMessage(sb.toString()); } diff --git a/src/main/java/forge/game/GameState.java b/src/main/java/forge/game/GameState.java index 4b13881872d..38964f39ca9 100644 --- a/src/main/java/forge/game/GameState.java +++ b/src/main/java/forge/game/GameState.java @@ -101,6 +101,9 @@ public class GameState { type = t; match = match0; List players = new ArrayList(); + allPlayers = Collections.unmodifiableList(players); + roIngamePlayers = Collections.unmodifiableList(ingamePlayers); + for (Entry kv : players0) { Player pl = kv.getKey().getPlayer(this); players.add(pl); @@ -113,8 +116,8 @@ public class GameState { pl.setTeam(psc.getTeamNumber()); } - allPlayers = Collections.unmodifiableList(players); - roIngamePlayers = Collections.unmodifiableList(ingamePlayers); + + action = new GameAction(this); stack = new MagicStack(this); phaseHandler = new PhaseHandler(this); diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 52328cb84e7..c6fc95382c7 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -71,6 +71,7 @@ import forge.game.zone.ZoneType; import forge.gui.GuiChoose; import forge.gui.GuiDialog; import forge.properties.ForgePreferences.FPref; +import forge.util.Lang; import forge.util.MyRandom; /** @@ -197,10 +198,27 @@ public class Player extends GameEntity implements Comparable { : new PlayerZone(z, this); this.zones.put(z, toPut); } - this.setName(lobby.getName()); + this.setName(chooseName(lobby)); this.lobbyPlayer = lobby; } + private String chooseName(LobbyPlayer lobby) { + String nameCandidate = lobby.getName(); + for( int i = 2; i <= 8; i++) { // several tries, not matter how many + boolean haveDuplicates = false; + for( Player p : game.getPlayers()) { + if( p.getName().equals(nameCandidate)) { + haveDuplicates = true; + break; + } + } + if(!haveDuplicates) + return nameCandidate; + nameCandidate = Lang.getOrdinal(i) + " " + lobby.getName(); + } + return nameCandidate; + } + @Override public GameState getGame() { // I'll probably regret about this return game; diff --git a/src/main/java/forge/gui/match/CMatchUI.java b/src/main/java/forge/gui/match/CMatchUI.java index 8d43b97e6d9..c56e99586c1 100644 --- a/src/main/java/forge/gui/match/CMatchUI.java +++ b/src/main/java/forge/gui/match/CMatchUI.java @@ -38,7 +38,6 @@ import forge.gui.framework.EDocID; import forge.gui.match.controllers.CDetail; import forge.gui.match.controllers.CMessage; import forge.gui.match.controllers.CPicture; -import forge.gui.match.nonsingleton.CField; import forge.gui.match.nonsingleton.VCommand; import forge.gui.match.nonsingleton.VField; import forge.gui.match.nonsingleton.VHand; @@ -137,6 +136,7 @@ public enum CMatchUI { VMatchUI.SINGLETON_INSTANCE.setCommandViews(commands); VMatchUI.SINGLETON_INSTANCE.setFieldViews(fields); VMatchUI.SINGLETON_INSTANCE.setHandViews(hands); + VMatchUI.SINGLETON_INSTANCE.setPlayers(sortedPlayers); VPlayers.SINGLETON_INSTANCE.init(players); } @@ -148,8 +148,8 @@ public enum CMatchUI { // This method is in the top-level controller because it affects ALL fields // (not just one). public void resetAllPhaseButtons() { - for (final CField c : CMatchUI.this.getFieldControls()) { - c.resetPhaseButtons(); + for (final VField v : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) { + v.resetPhaseButtons(); } } @@ -158,28 +158,9 @@ public enum CMatchUI { CMessage.SINGLETON_INSTANCE.setMessage(s0); } - /** - * Gets the field controllers. - * - * @return List - */ - public List getFieldControls() { - final List controllers = new ArrayList(); - - for (final VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) { - controllers.add(f.getLayoutControl()); - } - - return controllers; - } - public VField getFieldViewFor(Player p) { - for (final VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) { - if (f.getLayoutControl().getPlayer().equals(p)) { - return f; - } - } - return null; + int idx = VMatchUI.SINGLETON_INSTANCE.getPlayerIndex(p); + return idx < 0 ? null : VMatchUI.SINGLETON_INSTANCE.getFieldViews().get(idx); } /** diff --git a/src/main/java/forge/gui/match/TargetingOverlay.java b/src/main/java/forge/gui/match/TargetingOverlay.java index a65246b0bbd..e1eddb8c44b 100644 --- a/src/main/java/forge/gui/match/TargetingOverlay.java +++ b/src/main/java/forge/gui/match/TargetingOverlay.java @@ -38,7 +38,7 @@ import forge.Singletons; import forge.control.FControl; import forge.game.phase.Combat; import forge.gui.match.controllers.CDock; -import forge.gui.match.nonsingleton.CField; +import forge.gui.match.nonsingleton.VField; import forge.gui.toolbox.FSkin; import forge.view.FView; import forge.view.arcane.CardPanel; @@ -89,9 +89,9 @@ public enum TargetingOverlay { case 1: // Draw only hovered card activePanel = null; - for (CField f : CMatchUI.SINGLETON_INSTANCE.getFieldControls()) { - cardPanels.addAll(f.getView().getTabletop().getCardPanels()); - List cPanels = f.getView().getTabletop().getCardPanels(); + for (VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) { + cardPanels.addAll(f.getTabletop().getCardPanels()); + List cPanels = f.getTabletop().getCardPanels(); for (CardPanel c : cPanels) { if (c.isSelected()) { activePanel = c; @@ -103,8 +103,8 @@ public enum TargetingOverlay { break; default: // Draw all - for (CField f : CMatchUI.SINGLETON_INSTANCE.getFieldControls()) { - cardPanels.addAll(f.getView().getTabletop().getCardPanels()); + for (VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) { + cardPanels.addAll(f.getTabletop().getCardPanels()); } } diff --git a/src/main/java/forge/gui/match/VMatchUI.java b/src/main/java/forge/gui/match/VMatchUI.java index d223ef83563..0a6bca275c2 100644 --- a/src/main/java/forge/gui/match/VMatchUI.java +++ b/src/main/java/forge/gui/match/VMatchUI.java @@ -7,6 +7,7 @@ import javax.swing.JButton; import javax.swing.SwingUtilities; import forge.Singletons; +import forge.game.player.Player; import forge.gui.framework.DragCell; import forge.gui.framework.EDocID; import forge.gui.framework.IVTopLevelUI; @@ -35,6 +36,7 @@ public enum VMatchUI implements IVTopLevelUI { private List lstCommands = new ArrayList(); private List lstFields = new ArrayList(); private List lstHands = new ArrayList(); + private List lstPlayers = new ArrayList(); // Other instantiations private final CMatchUI control = null; @@ -128,6 +130,11 @@ public enum VMatchUI implements IVTopLevelUI { public void setFieldViews(final List lst0) { this.lstFields = lst0; } + + /** @param lst0 List */ + public void setPlayers(final List lst0) { + this.lstPlayers = lst0; + } /** @return {@link java.util.List}<{@link forge.gui.match.nonsigleton.VHand}> */ public List getFieldViews() { @@ -162,4 +169,9 @@ public enum VMatchUI implements IVTopLevelUI { public void setCommandViews(List lstCommands0) { this.lstCommands = lstCommands0; } + + + public int getPlayerIndex(Player player) { + return lstPlayers.indexOf(player); + } } diff --git a/src/main/java/forge/gui/match/nonsingleton/CField.java b/src/main/java/forge/gui/match/nonsingleton/CField.java index 54a3cdb72b6..b1eefb64705 100644 --- a/src/main/java/forge/gui/match/nonsingleton/CField.java +++ b/src/main/java/forge/gui/match/nonsingleton/CField.java @@ -272,25 +272,6 @@ public class CField implements ICDoc { return this.view; } - /** - * Resets all phase buttons to "inactive", so highlight won't be drawn on - * them. "Enabled" state remains the same. - */ - public void resetPhaseButtons() { - this.view.getLblUpkeep().setActive(false); - this.view.getLblDraw().setActive(false); - this.view.getLblMain1().setActive(false); - this.view.getLblBeginCombat().setActive(false); - this.view.getLblDeclareAttackers().setActive(false); - this.view.getLblDeclareBlockers().setActive(false); - this.view.getLblFirstStrike().setActive(false); - this.view.getLblCombatDamage().setActive(false); - this.view.getLblEndCombat().setActive(false); - this.view.getLblMain2().setActive(false); - this.view.getLblEndTurn().setActive(false); - this.view.getLblCleanup().setActive(false); - } - /* (non-Javadoc) * @see forge.gui.framework.ICDoc#getCommandOnSelect() */ diff --git a/src/main/java/forge/gui/match/nonsingleton/CHand.java b/src/main/java/forge/gui/match/nonsingleton/CHand.java index 371f388d4c9..f8f20a2aa88 100644 --- a/src/main/java/forge/gui/match/nonsingleton/CHand.java +++ b/src/main/java/forge/gui/match/nonsingleton/CHand.java @@ -32,6 +32,7 @@ import javax.swing.SwingUtilities; import forge.Card; import forge.Command; +import forge.FThreads; import forge.Singletons; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -51,8 +52,6 @@ public class CHand implements ICDoc, Observer { private final VHand view; private boolean initializedAlready = false; - private final List cardsInPanel = new ArrayList(); - private final MouseListener madCardClick = new MouseAdapter() { @Override public void mousePressed(final MouseEvent e) { cardclickAction(e); } }; @@ -110,28 +109,6 @@ public class CHand implements ICDoc, Observer { }); } - /** - * Adds the card. - * - * @param c - *   Card object - */ - public void addCard(final Card c) { - this.cardsInPanel.add(c); - //this.view.refreshLayout(); - } - - /** - * Adds the cards. - * - * @param c - *   List of Card objects - */ - public void addCards(final List c) { - this.cardsInPanel.addAll(c); - //this.view.refreshLayout(); - } - private void cardclickAction(final MouseEvent e) { if (e.getButton() != MouseEvent.BUTTON1) { return; @@ -143,17 +120,28 @@ public class CHand implements ICDoc, Observer { } public void update(final Observable a, final Object b) { + FThreads.invokeInEdtNowOrLater(updateRoutine); + } + + private final Runnable updateRoutine = new Runnable() { + @Override public void run() { updateHand(); } + }; + + public void updateHand() { + FThreads.assertExecutedByEdt(true); + final HandArea p = view.getHandArea(); - final Rectangle rctLibraryLabel = CMatchUI.SINGLETON_INSTANCE - .getFieldControls().get(0) - .getView().getLblLibrary().getBounds(); - final List c = player.getZone(ZoneType.Hand).getCards(); + + VField vf = CMatchUI.SINGLETON_INSTANCE.getFieldViewFor(player); + final Rectangle rctLibraryLabel = vf.getLblLibrary().getBounds(); + final List cc = player.getZone(ZoneType.Hand).getCards(); // Animation starts from the library label and runs to the hand panel. // This check prevents animation running if label hasn't been realized yet. - if (rctLibraryLabel.isEmpty() || p.getWidth() <= 0) { + if (rctLibraryLabel.isEmpty() ) { return; } +/* || p.getWidth() <= 0 */ List tmp, diff; tmp = new ArrayList(); @@ -161,7 +149,7 @@ public class CHand implements ICDoc, Observer { tmp.add(cpa.getGameCard()); } diff = new ArrayList(tmp); - diff.removeAll(c); + diff.removeAll(cc); if (diff.size() == p.getCardPanels().size()) { p.clear(); } else { @@ -169,15 +157,13 @@ public class CHand implements ICDoc, Observer { p.removeCardPanel(p.getCardPanel(card.getUniqueNumber())); } } - diff = new ArrayList(c); + diff = new ArrayList(cc); diff.removeAll(tmp); JLayeredPane layeredPane = Singletons.getView().getFrame().getLayeredPane(); int fromZoneX = 0, fromZoneY = 0; - final Point zoneLocation = SwingUtilities.convertPoint(CMatchUI.SINGLETON_INSTANCE - .getFieldControls() - .get(1).getView().getLblLibrary(), + final Point zoneLocation = SwingUtilities.convertPoint(vf.getLblLibrary(), Math.round(rctLibraryLabel.width / 2.0f), Math.round(rctLibraryLabel.height / 2.0f), layeredPane); fromZoneX = zoneLocation.x; fromZoneY = zoneLocation.y; @@ -187,13 +173,11 @@ public class CHand implements ICDoc, Observer { startY = fromZoneY - Math.round(Math.round(startWidth * forge.view.arcane.CardPanel.ASPECT_RATIO) / 2.0f); int endWidth, endX, endY; - forge.view.arcane.CardPanel toPanel = null; for (final Card card : diff) { - toPanel = p.addCard(card); + CardPanel toPanel = p.addCard(card); endWidth = toPanel.getCardWidth(); - final Point toPos = SwingUtilities.convertPoint(view.getHandArea(), - toPanel.getCardLocation(), layeredPane); + final Point toPos = SwingUtilities.convertPoint(view.getHandArea(), toPanel.getCardLocation(), layeredPane); endX = toPos.x; endY = toPos.y; diff --git a/src/main/java/forge/gui/match/nonsingleton/VField.java b/src/main/java/forge/gui/match/nonsingleton/VField.java index 211ce8d4115..a27c721ad97 100644 --- a/src/main/java/forge/gui/match/nonsingleton/VField.java +++ b/src/main/java/forge/gui/match/nonsingleton/VField.java @@ -555,6 +555,25 @@ public class VField implements IVDoc { } } + /** + * Resets all phase buttons to "inactive", so highlight won't be drawn on + * them. "Enabled" state remains the same. + */ + public void resetPhaseButtons() { + getLblUpkeep().setActive(false); + getLblDraw().setActive(false); + getLblMain1().setActive(false); + getLblBeginCombat().setActive(false); + getLblDeclareAttackers().setActive(false); + getLblDeclareBlockers().setActive(false); + getLblFirstStrike().setActive(false); + getLblCombatDamage().setActive(false); + getLblEndCombat().setActive(false); + getLblMain2().setActive(false); + getLblEndTurn().setActive(false); + getLblCleanup().setActive(false); + } + /** * Shows phase labels, handles repainting and on/off states. A PhaseLabel * has "skip" and "active" states, meaning "this phase is (not) skipped" and diff --git a/src/main/java/forge/properties/ForgePreferences.java b/src/main/java/forge/properties/ForgePreferences.java index 4222f904f12..27001b0aa13 100644 --- a/src/main/java/forge/properties/ForgePreferences.java +++ b/src/main/java/forge/properties/ForgePreferences.java @@ -149,36 +149,34 @@ public class ForgePreferences extends PreferencesStore { final List fieldViews = VMatchUI.SINGLETON_INSTANCE.getFieldViews(); // AI field is at index [1] - this.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fieldViews.get(1).getLblUpkeep().getEnabled())); - this.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fieldViews.get(1).getLblDraw().getEnabled())); - this.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fieldViews.get(1).getLblMain1().getEnabled())); - this.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fieldViews.get(1).getLblBeginCombat().getEnabled())); - this.setPref(FPref.PHASE_AI_DECLAREATTACKERS, - String.valueOf(fieldViews.get(1).getLblDeclareAttackers().getEnabled())); - this.setPref(FPref.PHASE_AI_DECLAREBLOCKERS, - String.valueOf(fieldViews.get(1).getLblDeclareBlockers().getEnabled())); - this.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fieldViews.get(1).getLblFirstStrike().getEnabled())); - this.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fieldViews.get(1).getLblCombatDamage().getEnabled())); - this.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fieldViews.get(1).getLblEndCombat().getEnabled())); - this.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fieldViews.get(1).getLblMain2().getEnabled())); - this.setPref(FPref.PHASE_AI_EOT, String.valueOf(fieldViews.get(1).getLblEndTurn().getEnabled())); - this.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fieldViews.get(1).getLblCleanup().getEnabled())); + VField fvAi = fieldViews.get(1); + this.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fvAi.getLblUpkeep().getEnabled())); + this.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fvAi.getLblDraw().getEnabled())); + this.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fvAi.getLblMain1().getEnabled())); + this.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fvAi.getLblBeginCombat().getEnabled())); + this.setPref(FPref.PHASE_AI_DECLAREATTACKERS, String.valueOf(fvAi.getLblDeclareAttackers().getEnabled())); + this.setPref(FPref.PHASE_AI_DECLAREBLOCKERS, String.valueOf(fvAi.getLblDeclareBlockers().getEnabled())); + this.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fvAi.getLblFirstStrike().getEnabled())); + this.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fvAi.getLblCombatDamage().getEnabled())); + this.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fvAi.getLblEndCombat().getEnabled())); + this.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fvAi.getLblMain2().getEnabled())); + this.setPref(FPref.PHASE_AI_EOT, String.valueOf(fvAi.getLblEndTurn().getEnabled())); + this.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fvAi.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()); + VField fvHuman = fieldViews.get(0); + this.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fvHuman.getLblUpkeep().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fvHuman.getLblDraw().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fvHuman.getLblMain1().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_BEGINCOMBAT, String.valueOf(fvHuman.getLblBeginCombat().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_DECLAREATTACKERS, String.valueOf(fvHuman.getLblDeclareAttackers().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_DECLAREBLOCKERS, String.valueOf(fvHuman.getLblDeclareBlockers().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_FIRSTSTRIKE, String.valueOf(fvHuman.getLblFirstStrike().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_COMBATDAMAGE, String.valueOf(fvHuman.getLblCombatDamage().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_ENDCOMBAT, String.valueOf(fvHuman.getLblEndCombat().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_MAIN2, String.valueOf(fvHuman.getLblMain2().getEnabled())); + this.setPref(FPref.PHASE_HUMAN_EOT, fvHuman.getLblEndTurn().getEnabled()); + this.setPref(FPref.PHASE_HUMAN_CLEANUP, fvHuman.getLblCleanup().getEnabled()); final VDev v = VDev.SINGLETON_INSTANCE; @@ -197,32 +195,34 @@ public class ForgePreferences extends PreferencesStore { Preferences.UPLOAD_DRAFT = Constant.Runtime.NET_CONN && this.getPrefBoolean(FPref.UI_UPLOAD_DRAFT); // AI field is at index [0] - fieldViews.get(1).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_UPKEEP)); - fieldViews.get(1).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DRAW)); - fieldViews.get(1).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN1)); - fieldViews.get(1).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT)); - fieldViews.get(1).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS)); - fieldViews.get(1).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS)); - fieldViews.get(1).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE)); - fieldViews.get(1).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE)); - fieldViews.get(1).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT)); - fieldViews.get(1).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN2)); - fieldViews.get(1).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_EOT)); - fieldViews.get(1).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_CLEANUP)); + VField fvAi = fieldViews.get(1); + fvAi.getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_UPKEEP)); + fvAi.getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DRAW)); + fvAi.getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN1)); + fvAi.getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT)); + fvAi.getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS)); + fvAi.getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS)); + fvAi.getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE)); + fvAi.getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE)); + fvAi.getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT)); + fvAi.getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN2)); + fvAi.getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_EOT)); + fvAi.getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_CLEANUP)); // Human field is at index [1] - fieldViews.get(0).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP)); - fieldViews.get(0).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DRAW)); - fieldViews.get(0).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1)); - fieldViews.get(0).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT)); - fieldViews.get(0).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS)); - fieldViews.get(0).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS)); - fieldViews.get(0).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE)); - fieldViews.get(0).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE)); - fieldViews.get(0).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT)); - fieldViews.get(0).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2)); - fieldViews.get(0).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_EOT)); - fieldViews.get(0).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP)); + VField fvHuman = fieldViews.get(0); + fvHuman.getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP)); + fvHuman.getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DRAW)); + fvHuman.getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1)); + fvHuman.getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT)); + fvHuman.getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS)); + fvHuman.getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS)); + fvHuman.getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE)); + fvHuman.getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE)); + fvHuman.getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT)); + fvHuman.getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2)); + fvHuman.getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_EOT)); + fvHuman.getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP)); //Singletons.getView().getViewMatch().setLayoutParams(this.getPref(FPref.UI_LAYOUT_PARAMS)); }