* Mana pool handling - Fixed bug where wrong playerId was used. Fixed that menu check state is the same for all GamePanles of client.

This commit is contained in:
LevelX2 2014-05-27 16:54:38 +02:00
parent 610c7d7462
commit c13f7a2115
7 changed files with 32 additions and 14 deletions

View file

@ -581,6 +581,16 @@ public final class GamePanel extends javax.swing.JPanel {
this.repaint(); this.repaint();
} }
/**
* Set the same state for menu selections to all player areas.
* @param manaPoolAutomatic
*/
public void setMenuStates(boolean manaPoolAutomatic) {
for(PlayAreaPanel playAreaPanel: players.values()) {
playAreaPanel.setMenuStates(manaPoolAutomatic);
}
}
private void displayStack(GameView game, BigCard bigCard, FeedbackPanel feedbackPanel, UUID gameId) { private void displayStack(GameView game, BigCard bigCard, FeedbackPanel feedbackPanel, UUID gameId) {
this.stack.loadCards(game.getStack(), bigCard, gameId, null); this.stack.loadCards(game.getStack(), bigCard, gameId, null);
} }

View file

@ -65,6 +65,8 @@ public class PlayAreaPanel extends javax.swing.JPanel {
private boolean playingMode = true; private boolean playingMode = true;
private GamePanel gamePanel; private GamePanel gamePanel;
private JCheckBoxMenuItem manaPoolMenuItem;
public static final int PANEL_HEIGHT = 242; public static final int PANEL_HEIGHT = 242;
public static final int PANEL_HEIGHT_SMALL = 190; public static final int PANEL_HEIGHT_SMALL = 190;
@ -177,16 +179,18 @@ public class PlayAreaPanel extends javax.swing.JPanel {
popupMenu.addSeparator(); popupMenu.addSeparator();
menuItem = new JCheckBoxMenuItem("Use mana from pool automatically", true); manaPoolMenuItem = new JCheckBoxMenuItem("Use mana from pool automatically", true);
menuItem.setMnemonic(KeyEvent.VK_M); manaPoolMenuItem.setMnemonic(KeyEvent.VK_M);
menuItem.setToolTipText("If not active, you have to click the type of mana you want to pay in the player panel."); manaPoolMenuItem.setToolTipText("If not active, you have to click the type of mana you want to pay in the player panel.");
popupMenu.add(menuItem); popupMenu.add(manaPoolMenuItem);
// Auto pay mana from mana pool // Auto pay mana from mana pool
menuItem.addActionListener(new ActionListener() { manaPoolMenuItem.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
gamePanel.getSession().setManaPoolMode(((JCheckBoxMenuItem)e.getSource()).getState(), gameId); boolean manaPoolAutomatic = ((JCheckBoxMenuItem)e.getSource()).getState();
gamePanel.setMenuStates(manaPoolAutomatic);
gamePanel.getSession().setManaPoolMode(manaPoolAutomatic, gameId);
} }
}); });
@ -367,6 +371,10 @@ public class PlayAreaPanel extends javax.swing.JPanel {
this.playingMode = playingMode; this.playingMode = playingMode;
} }
public void setMenuStates(boolean manaPoolAutomatic) {
manaPoolMenuItem.setSelected(manaPoolAutomatic);
}
private mage.client.game.BattlefieldPanel battlefieldPanel; private mage.client.game.BattlefieldPanel battlefieldPanel;
private javax.swing.JButton btnCheat; private javax.swing.JButton btnCheat;
//private javax.swing.JScrollPane jScrollPane1; //private javax.swing.JScrollPane jScrollPane1;

View file

@ -968,10 +968,10 @@ public class HumanPlayer extends PlayerImpl<HumanPlayer> {
} }
@Override @Override
public void setResponseManaType(UUID playerId, ManaType manaType) { public void setResponseManaType(UUID manaTypePlayerId, ManaType manaType) {
synchronized(response) { synchronized(response) {
response.setManaType(manaType); response.setManaType(manaType);
response.setResponseManaTypePlayerId(playerId); response.setResponseManaTypePlayerId(manaTypePlayerId);
response.notify(); response.notify();
log.debug("Got response mana type from player: " + getId()); log.debug("Got response mana type from player: " + getId());
} }

View file

@ -475,11 +475,11 @@ public class GameController implements GameCallback {
}); });
} }
public void sendPlayerManaType(UUID userId, UUID playerId, final ManaType data) { public void sendPlayerManaType(UUID userId, final UUID manaTypePlayerId, final ManaType data) {
sendMessage(userId, new Command() { sendMessage(userId, new Command() {
@Override @Override
public void execute(UUID playerId) { public void execute(UUID playerId) {
getGameSession(playerId).sendPlayerManaType(data, playerId); getGameSession(playerId).sendPlayerManaType(data, manaTypePlayerId);
} }
}); });
} }

View file

@ -221,9 +221,9 @@ public class GameSession extends GameWatcher {
game.getPlayer(playerId).setResponseString(data); game.getPlayer(playerId).setResponseString(data);
} }
public void sendPlayerManaType(ManaType manaType, UUID playerId) { public void sendPlayerManaType(ManaType manaType, UUID manaTypePlayerId) {
cancelTimeout(); cancelTimeout();
game.getPlayer(playerId).setResponseManaType(playerId, manaType); game.getPlayer(playerId).setResponseManaType(manaTypePlayerId, manaType);
} }
public void sendPlayerBoolean(Boolean data) { public void sendPlayerBoolean(Boolean data) {

View file

@ -278,7 +278,7 @@ public interface Player extends MageItem, Copyable<Player> {
void setResponseUUID(UUID responseUUID); void setResponseUUID(UUID responseUUID);
void setResponseBoolean(Boolean responseBoolean); void setResponseBoolean(Boolean responseBoolean);
void setResponseInteger(Integer data); void setResponseInteger(Integer data);
void setResponseManaType(UUID playerId, ManaType responseManaType); void setResponseManaType(UUID manaTypePlayerId, ManaType responseManaType);
boolean priority(Game game); boolean priority(Game game);
boolean choose(Outcome outcome, Target target, UUID sourceId, Game game); boolean choose(Outcome outcome, Target target, UUID sourceId, Game game);

View file

@ -1473,7 +1473,7 @@ public abstract class PlayerImpl<T extends PlayerImpl<T>> implements Player, Ser
public void setResponseString(String responseString) {} public void setResponseString(String responseString) {}
@Override @Override
public void setResponseManaType(UUID playerId, ManaType responseManaType) {} public void setResponseManaType(UUID manaTypePlayerId, ManaType responseManaType) {}
@Override @Override
public void setResponseUUID(UUID responseUUID) {} public void setResponseUUID(UUID responseUUID) {}