diff --git a/Mage.Client/src/main/java/mage/client/components/LegalityLabel.java b/Mage.Client/src/main/java/mage/client/components/LegalityLabel.java index ab711cc42a5..537170d8dfa 100644 --- a/Mage.Client/src/main/java/mage/client/components/LegalityLabel.java +++ b/Mage.Client/src/main/java/mage/client/components/LegalityLabel.java @@ -76,6 +76,18 @@ public class LegalityLabel extends JLabel { setPreferredSize(DIM_PREFERRED); } + /** + * Creates hide button to close legality panel (must be same size as label) + */ + public static JButton createHideButton() { + JButton button = new JButton("Hide"); + button.setHorizontalAlignment(SwingConstants.CENTER); + button.setMinimumSize(DIM_MINIMUM); + button.setMaximumSize(DIM_MAXIMUM); + button.setPreferredSize(DIM_PREFERRED); + return button; + } + public String getErrorMessage() { return errorMessage; } diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckLegalityPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckLegalityPanel.java index c1f3e47ef05..d253339dcde 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckLegalityPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckLegalityPanel.java @@ -1,13 +1,14 @@ package mage.client.deckeditor; -import java.util.*; -import java.util.stream.Stream; - import mage.cards.decks.Deck; import mage.cards.decks.DeckValidator; import mage.client.components.LegalityLabel; import mage.deck.*; +import javax.swing.*; +import java.util.Arrays; +import java.util.stream.Stream; + /** * @author Elandril @@ -85,10 +86,15 @@ public class DeckLegalityPanel extends javax.swing.JPanel { remove(previewNotLegal); Stream.of( - new Standard(), new Pioneer(), new Modern(), new Pauper(), new HistoricalType2(), - new Legacy(), new Vintage(), new Eternal(), new Frontier(), new Momir(), - new Commander(), new Brawl(), new Oathbreaker(), new PennyDreadfulCommander(), new TinyLeaders() + // most popular + new Standard(), new Pioneer(), new Modern(), new Legacy(), new Vintage(), new Pauper(), + // common + new Commander(), new Oathbreaker(), new Brawl(), + // other + new Frontier(), new HistoricalType2(), new PennyDreadfulCommander() + // not used: new Eternal(), new Momir(), new TinyLeaders() ).forEach(this::addLegalityLabel); + addHidePanelButton(); revalidate(); repaint(); @@ -101,6 +107,12 @@ public class DeckLegalityPanel extends javax.swing.JPanel { return label; } + protected void addHidePanelButton() { + JButton button = LegalityLabel.createHideButton(); + button.addActionListener(e -> this.setVisible(false)); + add(button); + } + public void validateDeck(Deck deck) { Arrays.stream(getComponents()) .filter(LegalityLabel.class::isInstance) diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java index 74db3ef1d65..1b9e9881bad 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java @@ -319,7 +319,8 @@ public class PreferencesDialog extends javax.swing.JDialog { public static ThemeType getCurrentTheme() { if (currentTheme == null) { - currentTheme = ThemeType.valueByName(getCachedValue(KEY_THEME, "Default Theme")); + currentTheme = ThemeType.valueByName(getCachedValue(KEY_THEME, "Default")); + logger.info("Using GUI theme: " + currentTheme.getName()); } return currentTheme; diff --git a/Mage.Client/src/main/java/mage/client/game/HelperPanel.java b/Mage.Client/src/main/java/mage/client/game/HelperPanel.java index ba87e8c8fd6..0a94eab63af 100644 --- a/Mage.Client/src/main/java/mage/client/game/HelperPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/HelperPanel.java @@ -72,7 +72,11 @@ public class HelperPanel extends JPanel { needFeedbackTimer = new Timer(100, evt -> SwingUtilities.invokeLater(() -> { needFeedbackTimer.stop(); if (!AppUtil.isAppActive() || !AppUtil.isGameActive(this.gameId)) { + // sound notification AudioManager.playFeedbackNeeded(); + // tray notification (baloon + icon blinking) + //MageTray.instance.displayMessage("Game needs your action."); + //MageTray.instance.blink(); } })); } diff --git a/Mage.Client/src/main/java/mage/client/themes/ThemeType.java b/Mage.Client/src/main/java/mage/client/themes/ThemeType.java index 52f1264c02b..56b57493bd6 100644 --- a/Mage.Client/src/main/java/mage/client/themes/ThemeType.java +++ b/Mage.Client/src/main/java/mage/client/themes/ThemeType.java @@ -4,7 +4,7 @@ import java.awt.*; public enum ThemeType { // https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html - DEFAULT("Default Theme", + DEFAULT("Default", "", true, false, @@ -13,17 +13,17 @@ public enum ThemeType { true, true, true, - new Color(169,176,190), // nimbusBlueGrey - new Color(214,217,223), // control - new Color(255,255,255), // nimbusLightBackground - new Color(242,242,189), // info - new Color(51,98,140), // nimbusBase + new Color(169, 176, 190), // nimbusBlueGrey + new Color(214, 217, 223), // control + new Color(255, 255, 255), // nimbusLightBackground + new Color(242, 242, 189), // info + new Color(51, 98, 140), // nimbusBase null, // mageToolbar new Color(200, 200, 180, 200), // playerPanel_inactiveBackgroundColor new Color(200, 255, 200, 200), // playerPanel_activeBackgroundColor new Color(131, 94, 83, 200) // playerPanel_deadBackgroundColor ), - GREY("GREY", + GREY("Grey", "grey-theme/", false, false, @@ -42,7 +42,7 @@ public enum ThemeType { new Color(180, 234, 180, 200), // playerPanel_activeBackgroundColor new Color(99, 99, 99, 200) // playerPanel_deadBackgroundColor ), - SUNSET_VAPORWAVE("Sunset Vaporwave", + SUNSET_VAPORWAVE("Vaporwave Sunset", "16bit-theme/", true, true, diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java index f38c2b5be69..9aee37fa226 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/HistoricalType2.java @@ -80,7 +80,7 @@ public class HistoricalType2 extends Constructed { * done in the overridden validate function. */ public HistoricalType2() { - super("Constructed - Historical Type 2"); + super("Constructed - Historical Type 2", "Hist. Type 2"); // banned cards banned.add("Balance"); diff --git a/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java index a50e13c8e18..cc2f548c88b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java @@ -136,7 +136,7 @@ enum RegenerationShieldsHint implements Hint { @Override public String getText(Game game, Ability ability) { int amount = RegenerateSourceEffect.getRegenerationShieldsAmount(game, ability.getSourceId()); - String info = "Regeneration shields: " + amount + " (permanent will be regenerated instead destroy)"; + String info = "Regeneration shields: " + amount + " (permanent will be regenerated instead of destroyed)"; if (amount > 0) { return HintUtils.prepareText(info, null, HintUtils.HINT_ICON_GOOD); } else {