mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Hot Seat prerequisites
This commit is contained in:
@@ -57,10 +57,10 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
|
|||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
if( startingPlayer == player ) {
|
if( startingPlayer == player ) {
|
||||||
sb.append("You are going first!\n\n");
|
sb.append(player).append(", you are going first!\n\n");
|
||||||
} else {
|
} else {
|
||||||
sb.append(startingPlayer.getName()).append(" is going first.\n");
|
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 ) {
|
if ( isCommander ) {
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ public class InputPassPriority extends InputBase {
|
|||||||
final PhaseHandler ph = player.getGame().getPhaseHandler();
|
final PhaseHandler ph = player.getGame().getPhaseHandler();
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
sb.append("Priority: ").append(player).append("\n").append("\n");
|
||||||
sb.append("Turn : ").append(ph.getPlayerTurn()).append("\n");
|
sb.append("Turn : ").append(ph.getPlayerTurn()).append("\n");
|
||||||
sb.append("Phase: ").append(ph.getPhase().Name).append("\n");
|
sb.append("Phase: ").append(ph.getPhase().Name).append("\n");
|
||||||
sb.append("Stack: ");
|
sb.append("Stack: ");
|
||||||
@@ -63,7 +64,7 @@ public class InputPassPriority extends InputBase {
|
|||||||
sb.append("Empty");
|
sb.append("Empty");
|
||||||
}
|
}
|
||||||
sb.append("\n");
|
sb.append("\n");
|
||||||
sb.append("Priority: ").append(player);
|
|
||||||
|
|
||||||
showMessage(sb.toString());
|
showMessage(sb.toString());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,6 +101,9 @@ public class GameState {
|
|||||||
type = t;
|
type = t;
|
||||||
match = match0;
|
match = match0;
|
||||||
List<Player> players = new ArrayList<Player>();
|
List<Player> players = new ArrayList<Player>();
|
||||||
|
allPlayers = Collections.unmodifiableList(players);
|
||||||
|
roIngamePlayers = Collections.unmodifiableList(ingamePlayers);
|
||||||
|
|
||||||
for (Entry<LobbyPlayer, PlayerStartConditions> kv : players0) {
|
for (Entry<LobbyPlayer, PlayerStartConditions> kv : players0) {
|
||||||
Player pl = kv.getKey().getPlayer(this);
|
Player pl = kv.getKey().getPlayer(this);
|
||||||
players.add(pl);
|
players.add(pl);
|
||||||
@@ -113,8 +116,8 @@ public class GameState {
|
|||||||
pl.setTeam(psc.getTeamNumber());
|
pl.setTeam(psc.getTeamNumber());
|
||||||
}
|
}
|
||||||
|
|
||||||
allPlayers = Collections.unmodifiableList(players);
|
|
||||||
roIngamePlayers = Collections.unmodifiableList(ingamePlayers);
|
|
||||||
action = new GameAction(this);
|
action = new GameAction(this);
|
||||||
stack = new MagicStack(this);
|
stack = new MagicStack(this);
|
||||||
phaseHandler = new PhaseHandler(this);
|
phaseHandler = new PhaseHandler(this);
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ import forge.game.zone.ZoneType;
|
|||||||
import forge.gui.GuiChoose;
|
import forge.gui.GuiChoose;
|
||||||
import forge.gui.GuiDialog;
|
import forge.gui.GuiDialog;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
|
import forge.util.Lang;
|
||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -197,10 +198,27 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
: new PlayerZone(z, this);
|
: new PlayerZone(z, this);
|
||||||
this.zones.put(z, toPut);
|
this.zones.put(z, toPut);
|
||||||
}
|
}
|
||||||
this.setName(lobby.getName());
|
this.setName(chooseName(lobby));
|
||||||
this.lobbyPlayer = 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
|
@Override
|
||||||
public GameState getGame() { // I'll probably regret about this
|
public GameState getGame() { // I'll probably regret about this
|
||||||
return game;
|
return game;
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ 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.VCommand;
|
import forge.gui.match.nonsingleton.VCommand;
|
||||||
import forge.gui.match.nonsingleton.VField;
|
import forge.gui.match.nonsingleton.VField;
|
||||||
import forge.gui.match.nonsingleton.VHand;
|
import forge.gui.match.nonsingleton.VHand;
|
||||||
@@ -137,6 +136,7 @@ public enum CMatchUI {
|
|||||||
VMatchUI.SINGLETON_INSTANCE.setCommandViews(commands);
|
VMatchUI.SINGLETON_INSTANCE.setCommandViews(commands);
|
||||||
VMatchUI.SINGLETON_INSTANCE.setFieldViews(fields);
|
VMatchUI.SINGLETON_INSTANCE.setFieldViews(fields);
|
||||||
VMatchUI.SINGLETON_INSTANCE.setHandViews(hands);
|
VMatchUI.SINGLETON_INSTANCE.setHandViews(hands);
|
||||||
|
VMatchUI.SINGLETON_INSTANCE.setPlayers(sortedPlayers);
|
||||||
|
|
||||||
VPlayers.SINGLETON_INSTANCE.init(players);
|
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
|
// This method is in the top-level controller because it affects ALL fields
|
||||||
// (not just one).
|
// (not just one).
|
||||||
public void resetAllPhaseButtons() {
|
public void resetAllPhaseButtons() {
|
||||||
for (final CField c : CMatchUI.this.getFieldControls()) {
|
for (final VField v : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) {
|
||||||
c.resetPhaseButtons();
|
v.resetPhaseButtons();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,28 +158,9 @@ public enum CMatchUI {
|
|||||||
CMessage.SINGLETON_INSTANCE.setMessage(s0);
|
CMessage.SINGLETON_INSTANCE.setMessage(s0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the field controllers.
|
|
||||||
*
|
|
||||||
* @return List<CField>
|
|
||||||
*/
|
|
||||||
public List<CField> getFieldControls() {
|
|
||||||
final List<CField> controllers = new ArrayList<CField>();
|
|
||||||
|
|
||||||
for (final VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) {
|
|
||||||
controllers.add(f.getLayoutControl());
|
|
||||||
}
|
|
||||||
|
|
||||||
return controllers;
|
|
||||||
}
|
|
||||||
|
|
||||||
public VField getFieldViewFor(Player p) {
|
public VField getFieldViewFor(Player p) {
|
||||||
for (final VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) {
|
int idx = VMatchUI.SINGLETON_INSTANCE.getPlayerIndex(p);
|
||||||
if (f.getLayoutControl().getPlayer().equals(p)) {
|
return idx < 0 ? null : VMatchUI.SINGLETON_INSTANCE.getFieldViews().get(idx);
|
||||||
return f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import forge.Singletons;
|
|||||||
import forge.control.FControl;
|
import forge.control.FControl;
|
||||||
import forge.game.phase.Combat;
|
import forge.game.phase.Combat;
|
||||||
import forge.gui.match.controllers.CDock;
|
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.gui.toolbox.FSkin;
|
||||||
import forge.view.FView;
|
import forge.view.FView;
|
||||||
import forge.view.arcane.CardPanel;
|
import forge.view.arcane.CardPanel;
|
||||||
@@ -89,9 +89,9 @@ public enum TargetingOverlay {
|
|||||||
case 1:
|
case 1:
|
||||||
// Draw only hovered card
|
// Draw only hovered card
|
||||||
activePanel = null;
|
activePanel = null;
|
||||||
for (CField f : CMatchUI.SINGLETON_INSTANCE.getFieldControls()) {
|
for (VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) {
|
||||||
cardPanels.addAll(f.getView().getTabletop().getCardPanels());
|
cardPanels.addAll(f.getTabletop().getCardPanels());
|
||||||
List<CardPanel> cPanels = f.getView().getTabletop().getCardPanels();
|
List<CardPanel> cPanels = f.getTabletop().getCardPanels();
|
||||||
for (CardPanel c : cPanels) {
|
for (CardPanel c : cPanels) {
|
||||||
if (c.isSelected()) {
|
if (c.isSelected()) {
|
||||||
activePanel = c;
|
activePanel = c;
|
||||||
@@ -103,8 +103,8 @@ public enum TargetingOverlay {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Draw all
|
// Draw all
|
||||||
for (CField f : CMatchUI.SINGLETON_INSTANCE.getFieldControls()) {
|
for (VField f : VMatchUI.SINGLETON_INSTANCE.getFieldViews()) {
|
||||||
cardPanels.addAll(f.getView().getTabletop().getCardPanels());
|
cardPanels.addAll(f.getTabletop().getCardPanels());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import javax.swing.JButton;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
|
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
|
import forge.game.player.Player;
|
||||||
import forge.gui.framework.DragCell;
|
import forge.gui.framework.DragCell;
|
||||||
import forge.gui.framework.EDocID;
|
import forge.gui.framework.EDocID;
|
||||||
import forge.gui.framework.IVTopLevelUI;
|
import forge.gui.framework.IVTopLevelUI;
|
||||||
@@ -35,6 +36,7 @@ public enum VMatchUI implements IVTopLevelUI {
|
|||||||
private List<VCommand> lstCommands = new ArrayList<VCommand>();
|
private List<VCommand> lstCommands = new ArrayList<VCommand>();
|
||||||
private List<VField> lstFields = new ArrayList<VField>();
|
private List<VField> lstFields = new ArrayList<VField>();
|
||||||
private List<VHand> lstHands = new ArrayList<VHand>();
|
private List<VHand> lstHands = new ArrayList<VHand>();
|
||||||
|
private List<Player> lstPlayers = new ArrayList<Player>();
|
||||||
|
|
||||||
// Other instantiations
|
// Other instantiations
|
||||||
private final CMatchUI control = null;
|
private final CMatchUI control = null;
|
||||||
@@ -129,6 +131,11 @@ public enum VMatchUI implements IVTopLevelUI {
|
|||||||
this.lstFields = lst0;
|
this.lstFields = lst0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @param lst0 List<VField> */
|
||||||
|
public void setPlayers(final List<Player> lst0) {
|
||||||
|
this.lstPlayers = 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<VField> getFieldViews() {
|
public List<VField> getFieldViews() {
|
||||||
return lstFields;
|
return lstFields;
|
||||||
@@ -162,4 +169,9 @@ public enum VMatchUI implements IVTopLevelUI {
|
|||||||
public void setCommandViews(List<VCommand> lstCommands0) {
|
public void setCommandViews(List<VCommand> lstCommands0) {
|
||||||
this.lstCommands = lstCommands0;
|
this.lstCommands = lstCommands0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getPlayerIndex(Player player) {
|
||||||
|
return lstPlayers.indexOf(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -272,25 +272,6 @@ public class CField implements ICDoc {
|
|||||||
return this.view;
|
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)
|
/* (non-Javadoc)
|
||||||
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
|
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import javax.swing.SwingUtilities;
|
|||||||
|
|
||||||
import forge.Card;
|
import forge.Card;
|
||||||
import forge.Command;
|
import forge.Command;
|
||||||
|
import forge.FThreads;
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
@@ -51,8 +52,6 @@ public class CHand implements ICDoc, Observer {
|
|||||||
private final VHand view;
|
private final VHand view;
|
||||||
private boolean initializedAlready = false;
|
private boolean initializedAlready = false;
|
||||||
|
|
||||||
private final List<Card> cardsInPanel = new ArrayList<Card>();
|
|
||||||
|
|
||||||
private final MouseListener madCardClick = new MouseAdapter() { @Override
|
private final MouseListener madCardClick = new MouseAdapter() { @Override
|
||||||
public void mousePressed(final MouseEvent e) {
|
public void mousePressed(final MouseEvent e) {
|
||||||
cardclickAction(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<Card> c) {
|
|
||||||
this.cardsInPanel.addAll(c);
|
|
||||||
//this.view.refreshLayout();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void cardclickAction(final MouseEvent e) {
|
private void cardclickAction(final MouseEvent e) {
|
||||||
if (e.getButton() != MouseEvent.BUTTON1) {
|
if (e.getButton() != MouseEvent.BUTTON1) {
|
||||||
return;
|
return;
|
||||||
@@ -143,17 +120,28 @@ public class CHand implements ICDoc, Observer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void update(final Observable a, final Object b) {
|
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 HandArea p = view.getHandArea();
|
||||||
final Rectangle rctLibraryLabel = CMatchUI.SINGLETON_INSTANCE
|
|
||||||
.getFieldControls().get(0)
|
VField vf = CMatchUI.SINGLETON_INSTANCE.getFieldViewFor(player);
|
||||||
.getView().getLblLibrary().getBounds();
|
final Rectangle rctLibraryLabel = vf.getLblLibrary().getBounds();
|
||||||
final List<Card> c = player.getZone(ZoneType.Hand).getCards();
|
final List<Card> cc = player.getZone(ZoneType.Hand).getCards();
|
||||||
|
|
||||||
// Animation starts from the library label and runs to the hand panel.
|
// Animation starts from the library label and runs to the hand panel.
|
||||||
// This check prevents animation running if label hasn't been realized yet.
|
// This check prevents animation running if label hasn't been realized yet.
|
||||||
if (rctLibraryLabel.isEmpty() || p.getWidth() <= 0) {
|
if (rctLibraryLabel.isEmpty() ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
/* || p.getWidth() <= 0 */
|
||||||
|
|
||||||
List<Card> tmp, diff;
|
List<Card> tmp, diff;
|
||||||
tmp = new ArrayList<Card>();
|
tmp = new ArrayList<Card>();
|
||||||
@@ -161,7 +149,7 @@ public class CHand implements ICDoc, Observer {
|
|||||||
tmp.add(cpa.getGameCard());
|
tmp.add(cpa.getGameCard());
|
||||||
}
|
}
|
||||||
diff = new ArrayList<Card>(tmp);
|
diff = new ArrayList<Card>(tmp);
|
||||||
diff.removeAll(c);
|
diff.removeAll(cc);
|
||||||
if (diff.size() == p.getCardPanels().size()) {
|
if (diff.size() == p.getCardPanels().size()) {
|
||||||
p.clear();
|
p.clear();
|
||||||
} else {
|
} else {
|
||||||
@@ -169,15 +157,13 @@ public class CHand implements ICDoc, Observer {
|
|||||||
p.removeCardPanel(p.getCardPanel(card.getUniqueNumber()));
|
p.removeCardPanel(p.getCardPanel(card.getUniqueNumber()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff = new ArrayList<Card>(c);
|
diff = new ArrayList<Card>(cc);
|
||||||
diff.removeAll(tmp);
|
diff.removeAll(tmp);
|
||||||
|
|
||||||
JLayeredPane layeredPane = Singletons.getView().getFrame().getLayeredPane();
|
JLayeredPane layeredPane = Singletons.getView().getFrame().getLayeredPane();
|
||||||
int fromZoneX = 0, fromZoneY = 0;
|
int fromZoneX = 0, fromZoneY = 0;
|
||||||
|
|
||||||
final Point zoneLocation = SwingUtilities.convertPoint(CMatchUI.SINGLETON_INSTANCE
|
final Point zoneLocation = SwingUtilities.convertPoint(vf.getLblLibrary(),
|
||||||
.getFieldControls()
|
|
||||||
.get(1).getView().getLblLibrary(),
|
|
||||||
Math.round(rctLibraryLabel.width / 2.0f), Math.round(rctLibraryLabel.height / 2.0f), layeredPane);
|
Math.round(rctLibraryLabel.width / 2.0f), Math.round(rctLibraryLabel.height / 2.0f), layeredPane);
|
||||||
fromZoneX = zoneLocation.x;
|
fromZoneX = zoneLocation.x;
|
||||||
fromZoneY = zoneLocation.y;
|
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);
|
startY = fromZoneY - Math.round(Math.round(startWidth * forge.view.arcane.CardPanel.ASPECT_RATIO) / 2.0f);
|
||||||
|
|
||||||
int endWidth, endX, endY;
|
int endWidth, endX, endY;
|
||||||
forge.view.arcane.CardPanel toPanel = null;
|
|
||||||
|
|
||||||
for (final Card card : diff) {
|
for (final Card card : diff) {
|
||||||
toPanel = p.addCard(card);
|
CardPanel toPanel = p.addCard(card);
|
||||||
endWidth = toPanel.getCardWidth();
|
endWidth = toPanel.getCardWidth();
|
||||||
final Point toPos = SwingUtilities.convertPoint(view.getHandArea(),
|
final Point toPos = SwingUtilities.convertPoint(view.getHandArea(), toPanel.getCardLocation(), layeredPane);
|
||||||
toPanel.getCardLocation(), layeredPane);
|
|
||||||
endX = toPos.x;
|
endX = toPos.x;
|
||||||
endY = toPos.y;
|
endY = toPos.y;
|
||||||
|
|
||||||
|
|||||||
@@ -555,6 +555,25 @@ public class VField implements IVDoc<CField> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
* Shows phase labels, handles repainting and on/off states. A PhaseLabel
|
||||||
* has "skip" and "active" states, meaning "this phase is (not) skipped" and
|
* has "skip" and "active" states, meaning "this phase is (not) skipped" and
|
||||||
|
|||||||
@@ -149,36 +149,34 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
|||||||
final List<VField> fieldViews = VMatchUI.SINGLETON_INSTANCE.getFieldViews();
|
final List<VField> fieldViews = VMatchUI.SINGLETON_INSTANCE.getFieldViews();
|
||||||
|
|
||||||
// AI field is at index [1]
|
// AI field is at index [1]
|
||||||
this.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fieldViews.get(1).getLblUpkeep().getEnabled()));
|
VField fvAi = fieldViews.get(1);
|
||||||
this.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fieldViews.get(1).getLblDraw().getEnabled()));
|
this.setPref(FPref.PHASE_AI_UPKEEP, String.valueOf(fvAi.getLblUpkeep().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fieldViews.get(1).getLblMain1().getEnabled()));
|
this.setPref(FPref.PHASE_AI_DRAW, String.valueOf(fvAi.getLblDraw().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fieldViews.get(1).getLblBeginCombat().getEnabled()));
|
this.setPref(FPref.PHASE_AI_MAIN1, String.valueOf(fvAi.getLblMain1().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_DECLAREATTACKERS,
|
this.setPref(FPref.PHASE_AI_BEGINCOMBAT, String.valueOf(fvAi.getLblBeginCombat().getEnabled()));
|
||||||
String.valueOf(fieldViews.get(1).getLblDeclareAttackers().getEnabled()));
|
this.setPref(FPref.PHASE_AI_DECLAREATTACKERS, String.valueOf(fvAi.getLblDeclareAttackers().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_DECLAREBLOCKERS,
|
this.setPref(FPref.PHASE_AI_DECLAREBLOCKERS, String.valueOf(fvAi.getLblDeclareBlockers().getEnabled()));
|
||||||
String.valueOf(fieldViews.get(1).getLblDeclareBlockers().getEnabled()));
|
this.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fvAi.getLblFirstStrike().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_FIRSTSTRIKE, String.valueOf(fieldViews.get(1).getLblFirstStrike().getEnabled()));
|
this.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fvAi.getLblCombatDamage().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_COMBATDAMAGE, String.valueOf(fieldViews.get(1).getLblCombatDamage().getEnabled()));
|
this.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fvAi.getLblEndCombat().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_ENDCOMBAT, String.valueOf(fieldViews.get(1).getLblEndCombat().getEnabled()));
|
this.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fvAi.getLblMain2().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_MAIN2, String.valueOf(fieldViews.get(1).getLblMain2().getEnabled()));
|
this.setPref(FPref.PHASE_AI_EOT, String.valueOf(fvAi.getLblEndTurn().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_EOT, String.valueOf(fieldViews.get(1).getLblEndTurn().getEnabled()));
|
this.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fvAi.getLblCleanup().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_AI_CLEANUP, String.valueOf(fieldViews.get(1).getLblCleanup().getEnabled()));
|
|
||||||
|
|
||||||
// Human field is at index [0]
|
// Human field is at index [0]
|
||||||
this.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fieldViews.get(0).getLblUpkeep().getEnabled()));
|
VField fvHuman = fieldViews.get(0);
|
||||||
this.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fieldViews.get(0).getLblDraw().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_UPKEEP, String.valueOf(fvHuman.getLblUpkeep().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fieldViews.get(0).getLblMain1().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_DRAW, String.valueOf(fvHuman.getLblDraw().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_BEGINCOMBAT, String.valueOf(fieldViews.get(0).getLblBeginCombat().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_MAIN1, String.valueOf(fvHuman.getLblMain1().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_DECLAREATTACKERS,
|
this.setPref(FPref.PHASE_HUMAN_BEGINCOMBAT, String.valueOf(fvHuman.getLblBeginCombat().getEnabled()));
|
||||||
String.valueOf(fieldViews.get(0).getLblDeclareAttackers().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_DECLAREATTACKERS, String.valueOf(fvHuman.getLblDeclareAttackers().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_DECLAREBLOCKERS,
|
this.setPref(FPref.PHASE_HUMAN_DECLAREBLOCKERS, String.valueOf(fvHuman.getLblDeclareBlockers().getEnabled()));
|
||||||
String.valueOf(fieldViews.get(0).getLblDeclareBlockers().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_FIRSTSTRIKE, String.valueOf(fvHuman.getLblFirstStrike().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_FIRSTSTRIKE, String.valueOf(fieldViews.get(0).getLblFirstStrike().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_COMBATDAMAGE, String.valueOf(fvHuman.getLblCombatDamage().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_COMBATDAMAGE, String.valueOf(fieldViews.get(0).getLblCombatDamage().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_ENDCOMBAT, String.valueOf(fvHuman.getLblEndCombat().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_ENDCOMBAT, String.valueOf(fieldViews.get(0).getLblEndCombat().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_MAIN2, String.valueOf(fvHuman.getLblMain2().getEnabled()));
|
||||||
this.setPref(FPref.PHASE_HUMAN_MAIN2, String.valueOf(fieldViews.get(0).getLblMain2().getEnabled()));
|
this.setPref(FPref.PHASE_HUMAN_EOT, fvHuman.getLblEndTurn().getEnabled());
|
||||||
this.setPref(FPref.PHASE_HUMAN_EOT, fieldViews.get(0).getLblEndTurn().getEnabled());
|
this.setPref(FPref.PHASE_HUMAN_CLEANUP, fvHuman.getLblCleanup().getEnabled());
|
||||||
this.setPref(FPref.PHASE_HUMAN_CLEANUP, fieldViews.get(0).getLblCleanup().getEnabled());
|
|
||||||
|
|
||||||
final VDev v = VDev.SINGLETON_INSTANCE;
|
final VDev v = VDev.SINGLETON_INSTANCE;
|
||||||
|
|
||||||
@@ -197,32 +195,34 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
|||||||
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(1).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_UPKEEP));
|
VField fvAi = fieldViews.get(1);
|
||||||
fieldViews.get(1).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DRAW));
|
fvAi.getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_UPKEEP));
|
||||||
fieldViews.get(1).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN1));
|
fvAi.getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DRAW));
|
||||||
fieldViews.get(1).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT));
|
fvAi.getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN1));
|
||||||
fieldViews.get(1).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS));
|
fvAi.getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_BEGINCOMBAT));
|
||||||
fieldViews.get(1).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS));
|
fvAi.getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREATTACKERS));
|
||||||
fieldViews.get(1).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE));
|
fvAi.getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_DECLAREBLOCKERS));
|
||||||
fieldViews.get(1).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE));
|
fvAi.getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_FIRSTSTRIKE));
|
||||||
fieldViews.get(1).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT));
|
fvAi.getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_COMBATDAMAGE));
|
||||||
fieldViews.get(1).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN2));
|
fvAi.getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_ENDCOMBAT));
|
||||||
fieldViews.get(1).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_EOT));
|
fvAi.getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_MAIN2));
|
||||||
fieldViews.get(1).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_CLEANUP));
|
fvAi.getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_EOT));
|
||||||
|
fvAi.getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_AI_CLEANUP));
|
||||||
|
|
||||||
// Human field is at index [1]
|
// Human field is at index [1]
|
||||||
fieldViews.get(0).getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP));
|
VField fvHuman = fieldViews.get(0);
|
||||||
fieldViews.get(0).getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DRAW));
|
fvHuman.getLblUpkeep().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_UPKEEP));
|
||||||
fieldViews.get(0).getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1));
|
fvHuman.getLblDraw().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DRAW));
|
||||||
fieldViews.get(0).getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT));
|
fvHuman.getLblMain1().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN1));
|
||||||
fieldViews.get(0).getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS));
|
fvHuman.getLblBeginCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_BEGINCOMBAT));
|
||||||
fieldViews.get(0).getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS));
|
fvHuman.getLblDeclareAttackers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREATTACKERS));
|
||||||
fieldViews.get(0).getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE));
|
fvHuman.getLblDeclareBlockers().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_DECLAREBLOCKERS));
|
||||||
fieldViews.get(0).getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE));
|
fvHuman.getLblFirstStrike().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_FIRSTSTRIKE));
|
||||||
fieldViews.get(0).getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT));
|
fvHuman.getLblCombatDamage().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_COMBATDAMAGE));
|
||||||
fieldViews.get(0).getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2));
|
fvHuman.getLblEndCombat().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_ENDCOMBAT));
|
||||||
fieldViews.get(0).getLblEndTurn().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_EOT));
|
fvHuman.getLblMain2().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_MAIN2));
|
||||||
fieldViews.get(0).getLblCleanup().setEnabled(this.getPrefBoolean(FPref.PHASE_HUMAN_CLEANUP));
|
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));
|
//Singletons.getView().getViewMatch().setLayoutParams(this.getPref(FPref.UI_LAYOUT_PARAMS));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user