diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java index c3d8510e053..98763c0c626 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java @@ -68,6 +68,7 @@ public class CField implements ICDoc { final ZoneAction exileAction = new ZoneAction(matchUI, player, ZoneType.Exile, MatchConstants.HUMANEXILED); final ZoneAction graveAction = new ZoneAction(matchUI, player, ZoneType.Graveyard, MatchConstants.HUMANGRAVEYARD); final ZoneAction flashBackAction = new ZoneAction(matchUI, player, ZoneType.Flashback, MatchConstants.HUMANFLASHBACK); + final ZoneAction commandAction = new ZoneAction(matchUI, player, ZoneType.Command, MatchConstants.HUMANCOMMAND); final Function manaAction = new Function() { public Boolean apply(Byte colorCode) { @@ -78,7 +79,7 @@ public class CField implements ICDoc { } }; - view.getDetailsPanel().setupMouseActions(handAction, libraryAction, exileAction, graveAction, flashBackAction, manaAction); + view.getDetailsPanel().setupMouseActions(handAction, libraryAction, exileAction, graveAction, flashBackAction, commandAction, manaAction); } public final CMatchUI getMatchUI() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/views/VField.java b/forge-gui-desktop/src/main/java/forge/screens/match/views/VField.java index b1978f74c1d..501f84d0f83 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/views/VField.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/views/VField.java @@ -228,7 +228,6 @@ public class VField implements IVDoc { public void updateDetails() { control.getMatchUI().getCPlayers().update(); - detailsPanel.updateDetails(); // Update life total final int life = player.getLife(); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/special/PlayerDetailsPanel.java b/forge-gui-desktop/src/main/java/forge/toolbox/special/PlayerDetailsPanel.java index 8eaeff0dbf5..e1d09d42247 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/special/PlayerDetailsPanel.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/special/PlayerDetailsPanel.java @@ -1,6 +1,5 @@ package forge.toolbox.special; -import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.Graphics; @@ -39,7 +38,7 @@ public class PlayerDetailsPanel extends JPanel { private final DetailLabel lblLibrary = new DetailLabel(FSkinProp.IMG_ZONE_LIBRARY, "Library (%s)"); private final DetailLabel lblExile = new DetailLabel(FSkinProp.IMG_ZONE_EXILE, "Exile (%s)"); private final DetailLabel lblFlashback = new DetailLabel(FSkinProp.IMG_ZONE_FLASHBACK, "Flashback cards (%s)"); - private final DetailLabel lblPoison = new DetailLabel(FSkinProp.IMG_ZONE_POISON, "Poison counters (%s)"); + private final DetailLabel lblCommand = new DetailLabel(FSkinProp.IMG_PLANESWALKER, "Command zone (%s)"); private final List> manaLabels = new ArrayList>(); public PlayerDetailsPanel(final PlayerView player0) { @@ -76,7 +75,7 @@ public class PlayerDetailsPanel extends JPanel { row5.setBackground(FSkin.getColor(FSkin.Colors.CLR_ZEBRA)); row6.setOpaque(false); - // Hand, library, graveyard, exile, flashback, poison labels + // Hand, library, graveyard, exile, flashback, command final String constraintsCell = "w 50%-4px!, h 100%!, gapleft 2px, gapright 2px"; row1.add(lblHand, constraintsCell); @@ -86,7 +85,7 @@ public class PlayerDetailsPanel extends JPanel { row2.add(lblExile, constraintsCell); row3.add(lblFlashback, constraintsCell); - row3.add(lblPoison, constraintsCell); + row3.add(lblCommand, constraintsCell); row4.add(manaLabels.get(0).getLeft(), constraintsCell); row4.add(manaLabels.get(1).getLeft(), constraintsCell); @@ -120,7 +119,8 @@ public class PlayerDetailsPanel extends JPanel { graveyardSize = String.valueOf(player.getGraveyardSize()), librarySize = String.valueOf(player.getLibrarySize()), flashbackSize = String.valueOf(player.getFlashbackSize()), - exileSize = String.valueOf(player.getExileSize()); + exileSize = String.valueOf(player.getExileSize()), + commandSize = String.valueOf(player.getCommandSize()); lblHand.setText(handSize); lblHand.setToolTip(handSize, player.getMaxHandString()); lblGraveyard.setText(graveyardSize); @@ -131,21 +131,8 @@ public class PlayerDetailsPanel extends JPanel { lblFlashback.setToolTip(flashbackSize); lblExile.setText(exileSize); lblExile.setToolTip(exileSize); - } - - /** - * Handles observer update of non-Zone details (poison). - */ - public void updateDetails() { - // Poison - final int poison = player.getPoisonCounters(); - lblPoison.setText(String.valueOf(poison)); - lblPoison.setToolTip(String.valueOf(poison)); - if (poison < 8) { - lblPoison.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - } else { - lblPoison.setForeground(Color.red); - } + lblCommand.setText(commandSize); + lblCommand.setToolTip(commandSize); } /** @@ -160,7 +147,8 @@ public class PlayerDetailsPanel extends JPanel { } public void setupMouseActions(final ForgeAction handAction, final ForgeAction libraryAction, final ForgeAction exileAction, - final ForgeAction graveAction, final ForgeAction flashBackAction, final Function manaAction) { + final ForgeAction graveAction, final ForgeAction flashBackAction, final ForgeAction commandAction, + final Function manaAction) { // Detail label listeners lblGraveyard.addMouseListener(new FMouseAdapter() { @Override @@ -192,6 +180,12 @@ public class PlayerDetailsPanel extends JPanel { flashBackAction.actionPerformed(null); } }); + lblCommand.addMouseListener(new FMouseAdapter() { + @Override + public void onLeftClick(final MouseEvent e) { + commandAction.actionPerformed(null); + } + }); for (final Pair labelPair : manaLabels) { labelPair.getLeft().addMouseListener(new FMouseAdapter() { diff --git a/forge-gui/src/main/java/forge/match/MatchConstants.java b/forge-gui/src/main/java/forge/match/MatchConstants.java index 1e6d9d16da3..a0a8a51e4d6 100644 --- a/forge-gui/src/main/java/forge/match/MatchConstants.java +++ b/forge-gui/src/main/java/forge/match/MatchConstants.java @@ -4,6 +4,7 @@ public enum MatchConstants { ALWAYSACCEPT ("Always accept this trigger"), ALWAYSDECLINE ("Always decline this trigger"), ALWAYSASK ("Always ask"), + HUMANCOMMAND ("Player's Command zone", "Command: ", "Player - View Command"), HUMANEXILED ("Player's Exile", "Exile:", "Player - View Exile"), HUMANFLASHBACK("Play card with Flashback", "Flashback:", "Player - View Cards with Flashback"), HUMANGRAVEYARD("Player's Graveyard", "Graveyard:", "Player - View Graveyard"),