mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
* Draft - Added possibility to mark a card to draft on timeout. Added sounds to draft. Changed compression of some sound files.
This commit is contained in:
parent
c3adb1337b
commit
e6c7fa5f96
28 changed files with 317 additions and 90 deletions
BIN
Mage.Client/sounds/OnCountdown1.wav
Normal file
BIN
Mage.Client/sounds/OnCountdown1.wav
Normal file
Binary file not shown.
BIN
Mage.Client/sounds/OnDraftSelect.wav
Normal file
BIN
Mage.Client/sounds/OnDraftSelect.wav
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Mage.Client/sounds/OnSkipButton.wav
Normal file
BIN
Mage.Client/sounds/OnSkipButton.wav
Normal file
Binary file not shown.
BIN
Mage.Client/sounds/OnSkipButtonCancel.wav
Normal file
BIN
Mage.Client/sounds/OnSkipButtonCancel.wav
Normal file
Binary file not shown.
Binary file not shown.
|
@ -48,6 +48,7 @@ import mage.client.plugins.impl.Plugins;
|
||||||
import mage.client.util.CardViewRarityComparator;
|
import mage.client.util.CardViewRarityComparator;
|
||||||
import mage.client.util.Event;
|
import mage.client.util.Event;
|
||||||
import mage.client.util.Listener;
|
import mage.client.util.Listener;
|
||||||
|
import mage.client.util.audio.AudioManager;
|
||||||
import mage.constants.Constants;
|
import mage.constants.Constants;
|
||||||
import mage.view.CardView;
|
import mage.view.CardView;
|
||||||
import mage.view.CardsView;
|
import mage.view.CardsView;
|
||||||
|
@ -63,13 +64,18 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener {
|
||||||
|
|
||||||
protected CardEventSource cardEventSource = new CardEventSource();
|
protected CardEventSource cardEventSource = new CardEventSource();
|
||||||
protected BigCard bigCard;
|
protected BigCard bigCard;
|
||||||
|
protected MageCard markedCard;
|
||||||
|
protected boolean noSound;
|
||||||
|
|
||||||
/** Creates new form DraftGrid */
|
/** Creates new form DraftGrid */
|
||||||
public DraftGrid() {
|
public DraftGrid() {
|
||||||
initComponents();
|
initComponents();
|
||||||
|
markedCard = null;
|
||||||
|
noSound= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clear() {
|
public void clear() {
|
||||||
|
markedCard = null;
|
||||||
this.clearCardEventListeners();
|
this.clearCardEventListeners();
|
||||||
for (Component comp: getComponents()) {
|
for (Component comp: getComponents()) {
|
||||||
if (comp instanceof Card || comp instanceof MageCard) {
|
if (comp instanceof Card || comp instanceof MageCard) {
|
||||||
|
@ -79,6 +85,14 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadBooster(CardsView booster, BigCard bigCard) {
|
public void loadBooster(CardsView booster, BigCard bigCard) {
|
||||||
|
if (booster instanceof CardsView && booster.size() == 0) {
|
||||||
|
noSound = true;
|
||||||
|
} else {
|
||||||
|
if (!noSound) {
|
||||||
|
AudioManager.playOnDraftSelect();
|
||||||
|
}
|
||||||
|
noSound = false;
|
||||||
|
}
|
||||||
this.bigCard = bigCard;
|
this.bigCard = bigCard;
|
||||||
this.removeAll();
|
this.removeAll();
|
||||||
|
|
||||||
|
@ -111,7 +125,7 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener {
|
||||||
Rectangle rectangle = new Rectangle(cardDimension.frameWidth, cardDimension.frameHeight);
|
Rectangle rectangle = new Rectangle(cardDimension.frameWidth, cardDimension.frameHeight);
|
||||||
Dimension dimension = new Dimension(cardDimension.frameWidth, cardDimension.frameHeight);
|
Dimension dimension = new Dimension(cardDimension.frameWidth, cardDimension.frameHeight);
|
||||||
|
|
||||||
List<CardView> sortedCards = new ArrayList<CardView>(booster.values());
|
List<CardView> sortedCards = new ArrayList<>(booster.values());
|
||||||
Collections.sort(sortedCards, new CardViewRarityComparator());
|
Collections.sort(sortedCards, new CardViewRarityComparator());
|
||||||
for (CardView card: sortedCards) {
|
for (CardView card: sortedCards) {
|
||||||
MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, dimension, null, true);
|
MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, dimension, null, true);
|
||||||
|
@ -173,11 +187,27 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent e) {
|
public void mousePressed(MouseEvent e) {
|
||||||
Object obj = e.getSource();
|
if (e.getButton() == MouseEvent.BUTTON1) { // only left click select
|
||||||
if (obj instanceof MageCard) {
|
Object obj = e.getSource();
|
||||||
this.cardEventSource.doubleClick(((MageCard)obj).getOriginal(), "pick-a-card");
|
if (obj instanceof MageCard) {
|
||||||
this.hidePopup();
|
this.cardEventSource.doubleClick(((MageCard)obj).getOriginal(), "pick-a-card");
|
||||||
|
this.hidePopup();
|
||||||
|
AudioManager.playOnDraftSelect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (e.getButton() == MouseEvent.BUTTON3) { // only right click mark
|
||||||
|
Object obj = e.getSource();
|
||||||
|
if (obj instanceof MageCard) {
|
||||||
|
if (this.markedCard != null) {
|
||||||
|
markedCard.setSelected(false);
|
||||||
|
}
|
||||||
|
this.cardEventSource.doubleClick(((MageCard)obj).getOriginal(), "mark-a-card");
|
||||||
|
markedCard = ((MageCard)obj);
|
||||||
|
markedCard.setSelected(true);
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<Layout>
|
<Layout>
|
||||||
<DimensionLayout dim="0">
|
<DimensionLayout dim="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="tabsPanel" alignment="0" max="32767" attributes="0"/>
|
<Component id="tabsPanel" alignment="0" pref="566" max="32767" attributes="0"/>
|
||||||
<Group type="102" alignment="1" attributes="0">
|
<Group type="102" alignment="1" attributes="0">
|
||||||
<EmptySpace max="32767" attributes="0"/>
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
<Component id="saveButton" min="-2" max="-2" attributes="0"/>
|
<Component id="saveButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
@ -885,7 +885,7 @@
|
||||||
<Group type="102" attributes="0">
|
<Group type="102" attributes="0">
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="sounds_clips" pref="537" max="32767" attributes="0"/>
|
<Component id="sounds_clips" max="32767" attributes="0"/>
|
||||||
<Component id="sounds_backgroundMusic" alignment="1" max="32767" attributes="0"/>
|
<Component id="sounds_backgroundMusic" alignment="1" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
@ -899,7 +899,7 @@
|
||||||
<Component id="sounds_clips" min="-2" max="-2" attributes="0"/>
|
<Component id="sounds_clips" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="sounds_backgroundMusic" min="-2" max="-2" attributes="0"/>
|
<Component id="sounds_backgroundMusic" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace pref="235" max="32767" attributes="0"/>
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
|
@ -921,7 +921,10 @@
|
||||||
<Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value=""/>
|
<Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value=""/>
|
||||||
</AccessibilityProperties>
|
</AccessibilityProperties>
|
||||||
|
|
||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout">
|
||||||
|
<Property name="columns" type="int" value="0"/>
|
||||||
|
<Property name="rows" type="int" value="4"/>
|
||||||
|
</Layout>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Component class="javax.swing.JCheckBox" name="cbEnableGameSounds">
|
<Component class="javax.swing.JCheckBox" name="cbEnableGameSounds">
|
||||||
<Properties>
|
<Properties>
|
||||||
|
@ -931,11 +934,24 @@
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cbEnableGameSoundsActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cbEnableGameSoundsActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
<Constraints>
|
</Component>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
<Component class="javax.swing.JCheckBox" name="cbEnableDraftSounds">
|
||||||
<BorderConstraints direction="First"/>
|
<Properties>
|
||||||
</Constraint>
|
<Property name="text" type="java.lang.String" value="Enable draft sounds"/>
|
||||||
</Constraints>
|
<Property name="toolTipText" type="java.lang.String" value="Sounds that will be played during drafting for card picking or warining if time runs out."/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cbEnableDraftSoundsActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JCheckBox" name="cbEnableSkipButtonsSounds">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Enable skip button sounds"/>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" value="Sounds that will be played if a priority skip action (F4/F5/F7/F9) or cancel skip action (F3) is used."/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cbEnableSkipButtonsSoundsActionPerformed"/>
|
||||||
|
</Events>
|
||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JCheckBox" name="cbEnableOtherSounds">
|
<Component class="javax.swing.JCheckBox" name="cbEnableOtherSounds">
|
||||||
<Properties>
|
<Properties>
|
||||||
|
@ -945,11 +961,6 @@
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cbEnableOtherSoundsActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="cbEnableOtherSoundsActionPerformed"/>
|
||||||
</Events>
|
</Events>
|
||||||
<Constraints>
|
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
|
|
||||||
<BorderConstraints direction="Last"/>
|
|
||||||
</Constraint>
|
|
||||||
</Constraints>
|
|
||||||
</Component>
|
</Component>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
|
@ -973,7 +984,7 @@
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="jLabel16" min="-2" max="-2" attributes="0"/>
|
<Component id="jLabel16" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="txtBattlefieldIBGMPath" pref="301" max="32767" attributes="0"/>
|
<Component id="txtBattlefieldIBGMPath" max="32767" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="btnBattlefieldBGMBrowse" min="-2" max="-2" attributes="0"/>
|
<Component id="btnBattlefieldBGMBrowse" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
|
@ -98,6 +98,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
public static final String KEY_BATTLEFIELD_IMAGE_DEFAULT = "battlefieldImageDefault";
|
public static final String KEY_BATTLEFIELD_IMAGE_DEFAULT = "battlefieldImageDefault";
|
||||||
|
|
||||||
public static final String KEY_SOUNDS_GAME_ON = "soundsOn";
|
public static final String KEY_SOUNDS_GAME_ON = "soundsOn";
|
||||||
|
public static final String KEY_SOUNDS_DRAFT_ON = "soundsDraftOn";
|
||||||
|
public static final String KEY_SOUNDS_SKIP_BUTTONS_ON = "soundsSkipButtonsOn";
|
||||||
public static final String KEY_SOUNDS_OTHER_ON = "soundsOtherOn";
|
public static final String KEY_SOUNDS_OTHER_ON = "soundsOtherOn";
|
||||||
public static final String KEY_SOUNDS_MATCH_MUSIC_ON = "soundsMatchMusicOn";
|
public static final String KEY_SOUNDS_MATCH_MUSIC_ON = "soundsMatchMusicOn";
|
||||||
public static final String KEY_SOUNDS_MATCH_MUSIC_PATH = "soundsMatchMusicPath";
|
public static final String KEY_SOUNDS_MATCH_MUSIC_PATH = "soundsMatchMusicPath";
|
||||||
|
@ -369,6 +371,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
tabSounds = new javax.swing.JPanel();
|
tabSounds = new javax.swing.JPanel();
|
||||||
sounds_clips = new javax.swing.JPanel();
|
sounds_clips = new javax.swing.JPanel();
|
||||||
cbEnableGameSounds = new javax.swing.JCheckBox();
|
cbEnableGameSounds = new javax.swing.JCheckBox();
|
||||||
|
cbEnableDraftSounds = new javax.swing.JCheckBox();
|
||||||
|
cbEnableSkipButtonsSounds = new javax.swing.JCheckBox();
|
||||||
cbEnableOtherSounds = new javax.swing.JCheckBox();
|
cbEnableOtherSounds = new javax.swing.JCheckBox();
|
||||||
sounds_backgroundMusic = new javax.swing.JPanel();
|
sounds_backgroundMusic = new javax.swing.JPanel();
|
||||||
cbEnableBattlefieldBGM = new javax.swing.JCheckBox();
|
cbEnableBattlefieldBGM = new javax.swing.JCheckBox();
|
||||||
|
@ -919,7 +923,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
tabsPanel.addTab("Images", tabImages);
|
tabsPanel.addTab("Images", tabImages);
|
||||||
|
|
||||||
sounds_clips.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Clips"));
|
sounds_clips.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Clips"));
|
||||||
sounds_clips.setLayout(new java.awt.BorderLayout());
|
sounds_clips.setLayout(new java.awt.GridLayout(4, 0));
|
||||||
|
|
||||||
cbEnableGameSounds.setText("Enable game sounds");
|
cbEnableGameSounds.setText("Enable game sounds");
|
||||||
cbEnableGameSounds.setToolTipText("Sounds that will be played for certain actions (e.g. play land, attack, etc.) during the game.");
|
cbEnableGameSounds.setToolTipText("Sounds that will be played for certain actions (e.g. play land, attack, etc.) during the game.");
|
||||||
|
@ -928,7 +932,25 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
cbEnableGameSoundsActionPerformed(evt);
|
cbEnableGameSoundsActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
sounds_clips.add(cbEnableGameSounds, java.awt.BorderLayout.PAGE_START);
|
sounds_clips.add(cbEnableGameSounds);
|
||||||
|
|
||||||
|
cbEnableDraftSounds.setText("Enable draft sounds");
|
||||||
|
cbEnableDraftSounds.setToolTipText("Sounds that will be played during drafting for card picking or warining if time runs out.");
|
||||||
|
cbEnableDraftSounds.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
cbEnableDraftSoundsActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
sounds_clips.add(cbEnableDraftSounds);
|
||||||
|
|
||||||
|
cbEnableSkipButtonsSounds.setText("Enable skip button sounds");
|
||||||
|
cbEnableSkipButtonsSounds.setToolTipText("Sounds that will be played if a priority skip action (F4/F5/F7/F9) or cancel skip action (F3) is used.");
|
||||||
|
cbEnableSkipButtonsSounds.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
cbEnableSkipButtonsSoundsActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
sounds_clips.add(cbEnableSkipButtonsSounds);
|
||||||
|
|
||||||
cbEnableOtherSounds.setText("Enable other sounds");
|
cbEnableOtherSounds.setText("Enable other sounds");
|
||||||
cbEnableOtherSounds.setToolTipText("Sounds that will be played for actions outside of games (e.g. whisper, player joins your game, player submits a deck ...).");
|
cbEnableOtherSounds.setToolTipText("Sounds that will be played for actions outside of games (e.g. whisper, player joins your game, player submits a deck ...).");
|
||||||
|
@ -937,7 +959,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
cbEnableOtherSoundsActionPerformed(evt);
|
cbEnableOtherSoundsActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
sounds_clips.add(cbEnableOtherSounds, java.awt.BorderLayout.PAGE_END);
|
sounds_clips.add(cbEnableOtherSounds);
|
||||||
|
|
||||||
sounds_backgroundMusic.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Music"));
|
sounds_backgroundMusic.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Music"));
|
||||||
|
|
||||||
|
@ -974,7 +996,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
.addContainerGap()
|
.addContainerGap()
|
||||||
.addComponent(jLabel16)
|
.addComponent(jLabel16)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(txtBattlefieldIBGMPath, javax.swing.GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE)
|
.addComponent(txtBattlefieldIBGMPath)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(btnBattlefieldBGMBrowse))
|
.addComponent(btnBattlefieldBGMBrowse))
|
||||||
.addGroup(sounds_backgroundMusicLayout.createSequentialGroup()
|
.addGroup(sounds_backgroundMusicLayout.createSequentialGroup()
|
||||||
|
@ -999,7 +1021,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
.addGroup(tabSoundsLayout.createSequentialGroup()
|
.addGroup(tabSoundsLayout.createSequentialGroup()
|
||||||
.addContainerGap()
|
.addContainerGap()
|
||||||
.addGroup(tabSoundsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addGroup(tabSoundsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(sounds_clips, javax.swing.GroupLayout.DEFAULT_SIZE, 537, Short.MAX_VALUE)
|
.addComponent(sounds_clips, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
.addComponent(sounds_backgroundMusic, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
.addComponent(sounds_backgroundMusic, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
.addContainerGap())
|
.addContainerGap())
|
||||||
);
|
);
|
||||||
|
@ -1010,7 +1032,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
.addComponent(sounds_clips, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(sounds_clips, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(sounds_backgroundMusic, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(sounds_backgroundMusic, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addContainerGap(235, Short.MAX_VALUE))
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
);
|
);
|
||||||
|
|
||||||
sounds_clips.getAccessibleContext().setAccessibleDescription("");
|
sounds_clips.getAccessibleContext().setAccessibleDescription("");
|
||||||
|
@ -1424,7 +1446,7 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
getContentPane().setLayout(layout);
|
getContentPane().setLayout(layout);
|
||||||
layout.setHorizontalGroup(
|
layout.setHorizontalGroup(
|
||||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(tabsPanel)
|
.addComponent(tabsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 566, Short.MAX_VALUE)
|
||||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
.addComponent(saveButton)
|
.addComponent(saveButton)
|
||||||
|
@ -1493,6 +1515,8 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
|
|
||||||
// sounds
|
// sounds
|
||||||
save(prefs, dialog.cbEnableGameSounds, KEY_SOUNDS_GAME_ON, "true", "false", UPDATE_CACHE_POLICY);
|
save(prefs, dialog.cbEnableGameSounds, KEY_SOUNDS_GAME_ON, "true", "false", UPDATE_CACHE_POLICY);
|
||||||
|
save(prefs, dialog.cbEnableDraftSounds, KEY_SOUNDS_DRAFT_ON, "true", "false", UPDATE_CACHE_POLICY);
|
||||||
|
save(prefs, dialog.cbEnableSkipButtonsSounds, KEY_SOUNDS_SKIP_BUTTONS_ON, "true", "false", UPDATE_CACHE_POLICY);
|
||||||
save(prefs, dialog.cbEnableOtherSounds, KEY_SOUNDS_OTHER_ON, "true", "false", UPDATE_CACHE_POLICY);
|
save(prefs, dialog.cbEnableOtherSounds, KEY_SOUNDS_OTHER_ON, "true", "false", UPDATE_CACHE_POLICY);
|
||||||
save(prefs, dialog.cbEnableBattlefieldBGM, KEY_SOUNDS_MATCH_MUSIC_ON, "true", "false", UPDATE_CACHE_POLICY);
|
save(prefs, dialog.cbEnableBattlefieldBGM, KEY_SOUNDS_MATCH_MUSIC_ON, "true", "false", UPDATE_CACHE_POLICY);
|
||||||
saveSoundPath(prefs);
|
saveSoundPath(prefs);
|
||||||
|
@ -1753,6 +1777,14 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
// TODO add your handling code here:
|
// TODO add your handling code here:
|
||||||
}//GEN-LAST:event_cbStopOnAllEndActionPerformed
|
}//GEN-LAST:event_cbStopOnAllEndActionPerformed
|
||||||
|
|
||||||
|
private void cbEnableDraftSoundsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbEnableDraftSoundsActionPerformed
|
||||||
|
// TODO add your handling code here:
|
||||||
|
}//GEN-LAST:event_cbEnableDraftSoundsActionPerformed
|
||||||
|
|
||||||
|
private void cbEnableSkipButtonsSoundsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbEnableSkipButtonsSoundsActionPerformed
|
||||||
|
// TODO add your handling code here:
|
||||||
|
}//GEN-LAST:event_cbEnableSkipButtonsSoundsActionPerformed
|
||||||
|
|
||||||
private void showProxySettings() {
|
private void showProxySettings() {
|
||||||
if (cbProxyType.getSelectedItem() == Connection.ProxyType.SOCKS) {
|
if (cbProxyType.getSelectedItem() == Connection.ProxyType.SOCKS) {
|
||||||
this.pnlProxy.setVisible(true);
|
this.pnlProxy.setVisible(true);
|
||||||
|
@ -1829,19 +1861,19 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
load(prefs, dialog.showAbilityPickerForced, KEY_SHOW_ABILITY_PICKER_FORCED, "true");
|
load(prefs, dialog.showAbilityPickerForced, KEY_SHOW_ABILITY_PICKER_FORCED, "true");
|
||||||
load(prefs, dialog.cbGameLogAutoSave, KEY_GAME_LOG_AUTO_SAVE, "true");
|
load(prefs, dialog.cbGameLogAutoSave, KEY_GAME_LOG_AUTO_SAVE, "true");
|
||||||
|
|
||||||
load(prefs, dialog.checkBoxUpkeepYou, UPKEEP_YOU, "on","off");
|
load(prefs, dialog.checkBoxUpkeepYou, UPKEEP_YOU, "on","on");
|
||||||
load(prefs, dialog.checkBoxDrawYou, DRAW_YOU, "on","off");
|
load(prefs, dialog.checkBoxDrawYou, DRAW_YOU, "on","on");
|
||||||
load(prefs, dialog.checkBoxMainYou, MAIN_YOU, "on","on");
|
load(prefs, dialog.checkBoxMainYou, MAIN_YOU, "on","on");
|
||||||
load(prefs, dialog.checkBoxBeforeCYou, BEFORE_COMBAT_YOU, "on","off");
|
load(prefs, dialog.checkBoxBeforeCYou, BEFORE_COMBAT_YOU, "on","on");
|
||||||
load(prefs, dialog.checkBoxEndOfCYou, END_OF_COMBAT_YOU, "on","off");
|
load(prefs, dialog.checkBoxEndOfCYou, END_OF_COMBAT_YOU, "on","on");
|
||||||
load(prefs, dialog.checkBoxMain2You, MAIN_2_YOU, "on","on");
|
load(prefs, dialog.checkBoxMain2You, MAIN_2_YOU, "on","on");
|
||||||
load(prefs, dialog.checkBoxEndTurnYou, END_OF_TURN_YOU, "on","off");
|
load(prefs, dialog.checkBoxEndTurnYou, END_OF_TURN_YOU, "on","on");
|
||||||
|
|
||||||
load(prefs, dialog.checkBoxUpkeepOthers, UPKEEP_OTHERS, "on","off");
|
load(prefs, dialog.checkBoxUpkeepOthers, UPKEEP_OTHERS, "on","on");
|
||||||
load(prefs, dialog.checkBoxDrawOthers, DRAW_OTHERS, "on","off");
|
load(prefs, dialog.checkBoxDrawOthers, DRAW_OTHERS, "on","on");
|
||||||
load(prefs, dialog.checkBoxMainOthers, MAIN_OTHERS, "on","on");
|
load(prefs, dialog.checkBoxMainOthers, MAIN_OTHERS, "on","on");
|
||||||
load(prefs, dialog.checkBoxBeforeCOthers, BEFORE_COMBAT_OTHERS, "on","on");
|
load(prefs, dialog.checkBoxBeforeCOthers, BEFORE_COMBAT_OTHERS, "on","on");
|
||||||
load(prefs, dialog.checkBoxEndOfCOthers, END_OF_COMBAT_OTHERS, "on","off");
|
load(prefs, dialog.checkBoxEndOfCOthers, END_OF_COMBAT_OTHERS, "on","on");
|
||||||
load(prefs, dialog.checkBoxMain2Others, MAIN_2_OTHERS, "on","on");
|
load(prefs, dialog.checkBoxMain2Others, MAIN_2_OTHERS, "on","on");
|
||||||
load(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS, "on","on");
|
load(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS, "on","on");
|
||||||
|
|
||||||
|
@ -1905,26 +1937,13 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void loadSoundSettings(Preferences prefs) {
|
private static void loadSoundSettings(Preferences prefs) {
|
||||||
String prop = prefs.get(KEY_SOUNDS_GAME_ON, "true");
|
dialog.cbEnableGameSounds.setSelected(prefs.get(KEY_SOUNDS_GAME_ON, "true").equals("true"));
|
||||||
if (prop.equals("true")) {
|
dialog.cbEnableDraftSounds.setSelected(prefs.get(KEY_SOUNDS_DRAFT_ON, "true").equals("true"));
|
||||||
dialog.cbEnableGameSounds.setSelected(true);
|
dialog.cbEnableSkipButtonsSounds.setSelected(prefs.get(KEY_SOUNDS_SKIP_BUTTONS_ON, "true").equals("true"));
|
||||||
} else {
|
dialog.cbEnableOtherSounds.setSelected(prefs.get(KEY_SOUNDS_OTHER_ON, "true").equals("true"));
|
||||||
dialog.cbEnableGameSounds.setSelected(false);
|
|
||||||
}
|
|
||||||
prop = prefs.get(KEY_SOUNDS_OTHER_ON, "true");
|
|
||||||
if (prop.equals("true")) {
|
|
||||||
dialog.cbEnableOtherSounds.setSelected(true);
|
|
||||||
} else {
|
|
||||||
dialog.cbEnableOtherSounds.setSelected(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Match music
|
// Match music
|
||||||
prop = prefs.get(KEY_SOUNDS_MATCH_MUSIC_ON, "true");
|
dialog.cbEnableBattlefieldBGM.setSelected(prefs.get(KEY_SOUNDS_MATCH_MUSIC_ON, "true").equals("true"));
|
||||||
if (prop.equals("true")) {
|
|
||||||
dialog.cbEnableBattlefieldBGM.setSelected(true);
|
|
||||||
} else {
|
|
||||||
dialog.cbEnableBattlefieldBGM.setSelected(false);
|
|
||||||
}
|
|
||||||
dialog.txtBattlefieldIBGMPath.setEnabled(dialog.cbEnableBattlefieldBGM.isSelected());
|
dialog.txtBattlefieldIBGMPath.setEnabled(dialog.cbEnableBattlefieldBGM.isSelected());
|
||||||
dialog.btnBattlefieldBGMBrowse.setEnabled(dialog.cbEnableBattlefieldBGM.isSelected());
|
dialog.btnBattlefieldBGMBrowse.setEnabled(dialog.cbEnableBattlefieldBGM.isSelected());
|
||||||
// load and save the path always, so you can reactivate music without selecting path again
|
// load and save the path always, so you can reactivate music without selecting path again
|
||||||
|
@ -2187,8 +2206,10 @@ public class PreferencesDialog extends javax.swing.JDialog {
|
||||||
private javax.swing.JButton btnBrowseImageLocation;
|
private javax.swing.JButton btnBrowseImageLocation;
|
||||||
private javax.swing.JCheckBox cbCheckForNewImages;
|
private javax.swing.JCheckBox cbCheckForNewImages;
|
||||||
private javax.swing.JCheckBox cbEnableBattlefieldBGM;
|
private javax.swing.JCheckBox cbEnableBattlefieldBGM;
|
||||||
|
private javax.swing.JCheckBox cbEnableDraftSounds;
|
||||||
private javax.swing.JCheckBox cbEnableGameSounds;
|
private javax.swing.JCheckBox cbEnableGameSounds;
|
||||||
private javax.swing.JCheckBox cbEnableOtherSounds;
|
private javax.swing.JCheckBox cbEnableOtherSounds;
|
||||||
|
private javax.swing.JCheckBox cbEnableSkipButtonsSounds;
|
||||||
private javax.swing.JCheckBox cbGameLogAutoSave;
|
private javax.swing.JCheckBox cbGameLogAutoSave;
|
||||||
private javax.swing.JComboBox<String> cbPreferedImageLanguage;
|
private javax.swing.JComboBox<String> cbPreferedImageLanguage;
|
||||||
private javax.swing.JComboBox<ProxyType> cbProxyType;
|
private javax.swing.JComboBox<ProxyType> cbProxyType;
|
||||||
|
|
|
@ -68,10 +68,13 @@
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<Component id="lblPack1" min="-2" max="-2" attributes="0"/>
|
<Component id="lblPack1" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="txtPack1" max="32767" attributes="0"/>
|
<Component id="txtPack1" min="-2" pref="165" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<Component id="lblPack3" min="-2" max="-2" attributes="0"/>
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="lblPack3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="lblTimeRemaining" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="txtCardNo" alignment="0" max="32767" attributes="0"/>
|
<Component id="txtCardNo" alignment="0" max="32767" attributes="0"/>
|
||||||
|
@ -80,15 +83,24 @@
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="chkPack3" min="-2" max="-2" attributes="0"/>
|
<Group type="102" attributes="0">
|
||||||
<Component id="chkPack2" min="-2" max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="chkPack1" alignment="0" min="-2" max="-2" attributes="0"/>
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="chkPack3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="chkPack2" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="chkPack1" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<Component id="lblMessage" pref="236" max="32767" attributes="0"/>
|
<Component id="lblMessage" max="32767" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
|
@ -97,7 +109,7 @@
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="bigCard" min="-2" max="-2" attributes="0"/>
|
<Component id="bigCard" min="-2" max="-2" attributes="0"/>
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace min="-2" pref="64" max="-2" attributes="0"/>
|
||||||
<Component id="btnQuitTournament" min="-2" max="-2" attributes="0"/>
|
<Component id="btnQuitTournament" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
|
@ -110,10 +122,12 @@
|
||||||
<Group type="102" alignment="1" attributes="0">
|
<Group type="102" alignment="1" attributes="0">
|
||||||
<Component id="btnQuitTournament" min="-2" max="-2" attributes="0"/>
|
<Component id="btnQuitTournament" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="3" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Component id="lblPack1" alignment="3" min="-2" max="-2" attributes="0"/>
|
<Component id="chkPack1" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
<Component id="txtPack1" alignment="3" min="-2" max="-2" attributes="0"/>
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
<Component id="chkPack1" alignment="3" min="-2" max="-2" attributes="0"/>
|
<Component id="lblPack1" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="txtPack1" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="3" attributes="0">
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
@ -133,7 +147,10 @@
|
||||||
<Component id="txtCardNo" alignment="3" min="-2" max="-2" attributes="0"/>
|
<Component id="txtCardNo" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="txtTimeRemaining" min="-2" max="-2" attributes="0"/>
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="txtTimeRemaining" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="lblTimeRemaining" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="lblMessage" pref="24" max="32767" attributes="0"/>
|
<Component id="lblMessage" pref="24" max="32767" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
@ -210,6 +227,11 @@
|
||||||
<Property name="enabled" type="boolean" value="false"/>
|
<Property name="enabled" type="boolean" value="false"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
</Component>
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="lblTimeRemaining">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" value="Time:"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
<Component class="javax.swing.JTextField" name="txtTimeRemaining">
|
<Component class="javax.swing.JTextField" name="txtTimeRemaining">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="editable" type="boolean" value="false"/>
|
<Property name="editable" type="boolean" value="false"/>
|
||||||
|
|
|
@ -46,6 +46,7 @@ import mage.client.plugins.impl.Plugins;
|
||||||
import mage.client.util.CardsViewUtil;
|
import mage.client.util.CardsViewUtil;
|
||||||
import mage.client.util.Event;
|
import mage.client.util.Event;
|
||||||
import mage.client.util.Listener;
|
import mage.client.util.Listener;
|
||||||
|
import mage.client.util.audio.AudioManager;
|
||||||
import mage.remote.Session;
|
import mage.remote.Session;
|
||||||
import mage.view.CardsView;
|
import mage.view.CardsView;
|
||||||
import mage.view.DraftPickView;
|
import mage.view.DraftPickView;
|
||||||
|
@ -140,6 +141,10 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
setMessage("Waiting for other players");
|
setMessage("Waiting for other players");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (event.getEventName().equals("mark-a-card")) {
|
||||||
|
SimpleCardView source = (SimpleCardView) event.getSource();
|
||||||
|
session.sendCardMark(draftId, source.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -167,6 +172,9 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
text = text + Integer.toString(second);
|
text = text + Integer.toString(second);
|
||||||
}
|
}
|
||||||
this.txtTimeRemaining.setText(text);
|
this.txtTimeRemaining.setText(text);
|
||||||
|
if (s==6) {
|
||||||
|
AudioManager.playOnCountdown1();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hideDraft() {
|
public void hideDraft() {
|
||||||
|
@ -206,6 +214,7 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
chkPack3 = new javax.swing.JCheckBox();
|
chkPack3 = new javax.swing.JCheckBox();
|
||||||
lblCardNo = new javax.swing.JLabel();
|
lblCardNo = new javax.swing.JLabel();
|
||||||
txtCardNo = new javax.swing.JTextField();
|
txtCardNo = new javax.swing.JTextField();
|
||||||
|
lblTimeRemaining = new javax.swing.JLabel();
|
||||||
txtTimeRemaining = new javax.swing.JTextField();
|
txtTimeRemaining = new javax.swing.JTextField();
|
||||||
lblMessage = new javax.swing.JLabel();
|
lblMessage = new javax.swing.JLabel();
|
||||||
bigCard = new mage.client.cards.BigCard();
|
bigCard = new mage.client.cards.BigCard();
|
||||||
|
@ -244,6 +253,8 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
txtCardNo.setEditable(false);
|
txtCardNo.setEditable(false);
|
||||||
txtCardNo.setEnabled(false);
|
txtCardNo.setEnabled(false);
|
||||||
|
|
||||||
|
lblTimeRemaining.setText("Time:");
|
||||||
|
|
||||||
txtTimeRemaining.setEditable(false);
|
txtTimeRemaining.setEditable(false);
|
||||||
txtTimeRemaining.setForeground(java.awt.Color.red);
|
txtTimeRemaining.setForeground(java.awt.Color.red);
|
||||||
txtTimeRemaining.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
txtTimeRemaining.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
||||||
|
@ -268,27 +279,35 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, draftLeftPaneLayout.createSequentialGroup()
|
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, draftLeftPaneLayout.createSequentialGroup()
|
||||||
.addComponent(lblPack1)
|
.addComponent(lblPack1)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(txtPack1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
.addComponent(txtPack1, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, draftLeftPaneLayout.createSequentialGroup()
|
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, draftLeftPaneLayout.createSequentialGroup()
|
||||||
.addComponent(lblPack3)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(lblPack3)
|
||||||
|
.addComponent(lblTimeRemaining))
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(txtCardNo)
|
.addComponent(txtCardNo)
|
||||||
.addComponent(txtPack3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
.addComponent(txtPack3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
.addComponent(txtTimeRemaining))))
|
.addComponent(txtTimeRemaining))))
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
||||||
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(chkPack3)
|
.addGroup(draftLeftPaneLayout.createSequentialGroup()
|
||||||
.addComponent(chkPack2)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(chkPack1)))
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(chkPack3)
|
||||||
|
.addComponent(chkPack2))
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE))
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, draftLeftPaneLayout.createSequentialGroup()
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(chkPack1)
|
||||||
|
.addContainerGap())))
|
||||||
.addGroup(draftLeftPaneLayout.createSequentialGroup()
|
.addGroup(draftLeftPaneLayout.createSequentialGroup()
|
||||||
.addComponent(lblMessage, javax.swing.GroupLayout.DEFAULT_SIZE, 236, Short.MAX_VALUE)
|
.addComponent(lblMessage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
.addContainerGap())))
|
.addContainerGap())))
|
||||||
.addGroup(draftLeftPaneLayout.createSequentialGroup()
|
.addGroup(draftLeftPaneLayout.createSequentialGroup()
|
||||||
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addGroup(draftLeftPaneLayout.createSequentialGroup()
|
.addGroup(draftLeftPaneLayout.createSequentialGroup()
|
||||||
.addContainerGap()
|
.addGap(64, 64, 64)
|
||||||
.addComponent(btnQuitTournament)))
|
.addComponent(btnQuitTournament)))
|
||||||
.addGap(0, 0, Short.MAX_VALUE))
|
.addGap(0, 0, Short.MAX_VALUE))
|
||||||
);
|
);
|
||||||
|
@ -297,10 +316,11 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, draftLeftPaneLayout.createSequentialGroup()
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, draftLeftPaneLayout.createSequentialGroup()
|
||||||
.addComponent(btnQuitTournament)
|
.addComponent(btnQuitTournament)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addComponent(lblPack1)
|
.addComponent(chkPack1)
|
||||||
.addComponent(txtPack1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
.addComponent(chkPack1))
|
.addComponent(lblPack1)
|
||||||
|
.addComponent(txtPack1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
.addComponent(lblPack2)
|
.addComponent(lblPack2)
|
||||||
|
@ -316,7 +336,9 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
.addComponent(lblCardNo)
|
.addComponent(lblCardNo)
|
||||||
.addComponent(txtCardNo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
.addComponent(txtCardNo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(txtTimeRemaining, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addGroup(draftLeftPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(txtTimeRemaining, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addComponent(lblTimeRemaining))
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(lblMessage, javax.swing.GroupLayout.DEFAULT_SIZE, 24, Short.MAX_VALUE)
|
.addComponent(lblMessage, javax.swing.GroupLayout.DEFAULT_SIZE, 24, Short.MAX_VALUE)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
@ -379,6 +401,7 @@ public class DraftPanel extends javax.swing.JPanel {
|
||||||
private javax.swing.JLabel lblPack1;
|
private javax.swing.JLabel lblPack1;
|
||||||
private javax.swing.JLabel lblPack2;
|
private javax.swing.JLabel lblPack2;
|
||||||
private javax.swing.JLabel lblPack3;
|
private javax.swing.JLabel lblPack3;
|
||||||
|
private javax.swing.JLabel lblTimeRemaining;
|
||||||
private javax.swing.JTextField txtCardNo;
|
private javax.swing.JTextField txtCardNo;
|
||||||
private javax.swing.JTextField txtPack1;
|
private javax.swing.JTextField txtPack1;
|
||||||
private javax.swing.JTextField txtPack2;
|
private javax.swing.JTextField txtPack2;
|
||||||
|
|
|
@ -1590,31 +1590,31 @@ public final class GamePanel extends javax.swing.JPanel {
|
||||||
|
|
||||||
private void btnEndTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
private void btnEndTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_TURN, gameId);
|
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_TURN, gameId);
|
||||||
AudioManager.playNextPhase();
|
AudioManager.playOnSkipButton();
|
||||||
updateSkipButtons(true, false, false, false);
|
updateSkipButtons(true, false, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnUntilEndOfTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
private void btnUntilEndOfTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_TURN_END_STEP, gameId);
|
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_TURN_END_STEP, gameId);
|
||||||
AudioManager.playNextPhase();
|
AudioManager.playOnSkipButton();
|
||||||
updateSkipButtons(false, true, false, false);
|
updateSkipButtons(false, true, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnUntilNextMainPhaseActionPerformed(java.awt.event.ActionEvent evt) {
|
private void btnUntilNextMainPhaseActionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_MAIN_PHASE, gameId);
|
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_NEXT_MAIN_PHASE, gameId);
|
||||||
AudioManager.playNextPhase();
|
AudioManager.playOnSkipButton();
|
||||||
updateSkipButtons(false, false, true, false);
|
updateSkipButtons(false, false, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnPassPriorityUntilNextYourTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
private void btnPassPriorityUntilNextYourTurnActionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_MY_NEXT_TURN, gameId);
|
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_UNTIL_MY_NEXT_TURN, gameId);
|
||||||
AudioManager.playNextPhase();
|
AudioManager.playOnSkipButton();
|
||||||
updateSkipButtons(false, false, false, true);
|
updateSkipButtons(false, false, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void restorePriorityActionPerformed(java.awt.event.ActionEvent evt) {
|
private void restorePriorityActionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_CANCEL_ALL_ACTIONS, gameId);
|
session.sendPlayerAction(PlayerAction.PASS_PRIORITY_CANCEL_ALL_ACTIONS, gameId);
|
||||||
AudioManager.playButtonCancel();
|
AudioManager.playOnSkipButtonCancel();
|
||||||
updateSkipButtons(false, false, false, false);
|
updateSkipButtons(false, false, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,5 +7,7 @@ package mage.client.util.audio;
|
||||||
*/
|
*/
|
||||||
public enum AudioGroup {
|
public enum AudioGroup {
|
||||||
GameSounds,
|
GameSounds,
|
||||||
|
DraftSounds,
|
||||||
|
SkipSounds,
|
||||||
OtherSounds;
|
OtherSounds;
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,12 @@ public class AudioManager {
|
||||||
private MageClip updateStackClip = null;
|
private MageClip updateStackClip = null;
|
||||||
private MageClip onHover = null;
|
private MageClip onHover = null;
|
||||||
|
|
||||||
|
private MageClip onSkipButton = null;
|
||||||
|
private MageClip onSkipButtonCancel = null;
|
||||||
|
|
||||||
|
private MageClip onCountdown1 = null;
|
||||||
|
private MageClip onDraftSelect = null;
|
||||||
|
|
||||||
private MageClip playerJoinedTable = null;
|
private MageClip playerJoinedTable = null;
|
||||||
private MageClip playerSubmittedDeck = null;
|
private MageClip playerSubmittedDeck = null;
|
||||||
private MageClip playerWhispered = null;
|
private MageClip playerWhispered = null;
|
||||||
|
@ -137,7 +143,7 @@ public class AudioManager {
|
||||||
public static void playButtonCancel() {
|
public static void playButtonCancel() {
|
||||||
if (audioManager.buttonCancelClip == null) {
|
if (audioManager.buttonCancelClip == null) {
|
||||||
audioManager.buttonCancelClip = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnButtonCancel.wav"),
|
audioManager.buttonCancelClip = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnButtonCancel.wav"),
|
||||||
AudioGroup.GameSounds);
|
AudioGroup.SkipSounds);
|
||||||
|
|
||||||
}
|
}
|
||||||
checkAndPlayClip(getManager().buttonCancelClip);
|
checkAndPlayClip(getManager().buttonCancelClip);
|
||||||
|
@ -191,6 +197,38 @@ public class AudioManager {
|
||||||
checkAndPlayClip(getManager().onHover);
|
checkAndPlayClip(getManager().onHover);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void playOnCountdown1() {
|
||||||
|
if (audioManager.onCountdown1 == null) {
|
||||||
|
audioManager.onCountdown1 = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnCountdown1.wav"),
|
||||||
|
AudioGroup.DraftSounds);
|
||||||
|
}
|
||||||
|
checkAndPlayClip(getManager().onCountdown1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void playOnDraftSelect() {
|
||||||
|
if (audioManager.onDraftSelect == null) {
|
||||||
|
audioManager.onDraftSelect = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnDraftSelect.wav"),
|
||||||
|
AudioGroup.DraftSounds);
|
||||||
|
}
|
||||||
|
checkAndPlayClip(getManager().onDraftSelect);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void playOnSkipButton() {
|
||||||
|
if (audioManager.onSkipButton == null) {
|
||||||
|
audioManager.onSkipButton = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnSkipButton.wav"),
|
||||||
|
AudioGroup.SkipSounds);
|
||||||
|
}
|
||||||
|
checkAndPlayClip(getManager().onSkipButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void playOnSkipButtonCancel() {
|
||||||
|
if (audioManager.onSkipButtonCancel == null) {
|
||||||
|
audioManager.onSkipButtonCancel = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnSkipButtonCancel.wav"),
|
||||||
|
AudioGroup.SkipSounds);
|
||||||
|
}
|
||||||
|
checkAndPlayClip(getManager().onSkipButtonCancel);
|
||||||
|
}
|
||||||
|
|
||||||
public static void playPlayerJoinedTable() {
|
public static void playPlayerJoinedTable() {
|
||||||
if (audioManager.playerJoinedTable == null) {
|
if (audioManager.playerJoinedTable == null) {
|
||||||
audioManager.playerJoinedTable = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerJoinedTable.wav"),
|
audioManager.playerJoinedTable = new MageClip(audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPlayerJoinedTable.wav"),
|
||||||
|
@ -255,6 +293,12 @@ public class AudioManager {
|
||||||
case GameSounds:
|
case GameSounds:
|
||||||
playSound = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SOUNDS_GAME_ON, "true").equals("true");
|
playSound = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SOUNDS_GAME_ON, "true").equals("true");
|
||||||
break;
|
break;
|
||||||
|
case DraftSounds:
|
||||||
|
playSound = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SOUNDS_DRAFT_ON, "true").equals("true");
|
||||||
|
break;
|
||||||
|
case SkipSounds:
|
||||||
|
playSound = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SOUNDS_SKIP_BUTTONS_ON, "true").equals("true");
|
||||||
|
break;
|
||||||
case OtherSounds:
|
case OtherSounds:
|
||||||
playSound = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SOUNDS_OTHER_ON, "true").equals("true");
|
playSound = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_SOUNDS_OTHER_ON, "true").equals("true");
|
||||||
}
|
}
|
||||||
|
|
|
@ -428,6 +428,8 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti
|
||||||
this.isSelected = isSelected;
|
this.isSelected = isSelected;
|
||||||
if (isSelected) {
|
if (isSelected) {
|
||||||
this.titleText.setGlowColor(Color.green);
|
this.titleText.setGlowColor(Color.green);
|
||||||
|
} else {
|
||||||
|
this.titleText.setGlowColor(Color.black);
|
||||||
}
|
}
|
||||||
// noxx: bad idea is to call repaint in setter method
|
// noxx: bad idea is to call repaint in setter method
|
||||||
////repaint();
|
////repaint();
|
||||||
|
|
|
@ -30,6 +30,7 @@ public class GlowText extends JLabel {
|
||||||
this.wrap = wrap;
|
this.wrap = wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Dimension getPreferredSize () {
|
public Dimension getPreferredSize () {
|
||||||
Dimension size = super.getPreferredSize();
|
Dimension size = super.getPreferredSize();
|
||||||
size.width += glowSize;
|
size.width += glowSize;
|
||||||
|
@ -37,12 +38,16 @@ public class GlowText extends JLabel {
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setText (String text) {
|
public void setText (String text) {
|
||||||
super.setText(text);
|
super.setText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void paint (Graphics g) {
|
public void paint (Graphics g) {
|
||||||
if (getText().length() == 0) return;
|
if (getText().length() == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Graphics2D g2d = (Graphics2D)g;
|
Graphics2D g2d = (Graphics2D)g;
|
||||||
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||||
|
@ -62,14 +67,17 @@ public class GlowText extends JLabel {
|
||||||
while (measurer.getPosition() < charIterator.getEndIndex()) {
|
while (measurer.getPosition() < charIterator.getEndIndex()) {
|
||||||
//TextLayout textLayout = measurer.nextLayout(wrapWidth);
|
//TextLayout textLayout = measurer.nextLayout(wrapWidth);
|
||||||
lineCount++;
|
lineCount++;
|
||||||
if (lineCount > 2) break;
|
if (lineCount > 2) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
charIterator.first();
|
charIterator.first();
|
||||||
// Use char wrap if word wrap would cause more than two lines of text.
|
// Use char wrap if word wrap would cause more than two lines of text.
|
||||||
if (lineCount > 2)
|
if (lineCount > 2) {
|
||||||
measurer = new LineBreakMeasurer(charIterator, BreakIterator.getCharacterInstance(Locale.ENGLISH), fontContext);
|
measurer = new LineBreakMeasurer(charIterator, BreakIterator.getCharacterInstance(Locale.ENGLISH), fontContext);
|
||||||
else
|
} else {
|
||||||
measurer.setPosition(0);
|
measurer.setPosition(0);
|
||||||
|
}
|
||||||
while (measurer.getPosition() < charIterator.getEndIndex()) {
|
while (measurer.getPosition() < charIterator.getEndIndex()) {
|
||||||
TextLayout textLayout = measurer.nextLayout(wrapWidth);
|
TextLayout textLayout = measurer.nextLayout(wrapWidth);
|
||||||
float ascent = textLayout.getAscent();
|
float ascent = textLayout.getAscent();
|
||||||
|
|
|
@ -131,6 +131,7 @@ public interface MageServer {
|
||||||
void joinDraft(UUID draftId, String sessionId) throws MageException;
|
void joinDraft(UUID draftId, String sessionId) throws MageException;
|
||||||
void quitDraft(UUID draftId, String sessionId) throws MageException;
|
void quitDraft(UUID draftId, String sessionId) throws MageException;
|
||||||
DraftPickView sendCardPick(UUID draftId, String sessionId, UUID cardId) throws MageException;
|
DraftPickView sendCardPick(UUID draftId, String sessionId, UUID cardId) throws MageException;
|
||||||
|
void sendCardMark(UUID draftId, String sessionId, UUID cardId) throws MageException;
|
||||||
|
|
||||||
//challenge methods
|
//challenge methods
|
||||||
// void startChallenge(String sessionId, UUID roomId, UUID tableId, UUID challengeId) throws MageException;
|
// void startChallenge(String sessionId, UUID roomId, UUID tableId, UUID challengeId) throws MageException;
|
||||||
|
|
|
@ -771,6 +771,20 @@ public class SessionImpl implements Session {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DraftPickView sendCardMark(UUID draftId, UUID cardId) {
|
||||||
|
try {
|
||||||
|
if (isConnected()) {
|
||||||
|
server.sendCardMark(draftId, sessionId, cardId);
|
||||||
|
}
|
||||||
|
} catch (MageException ex) {
|
||||||
|
handleMageException(ex);
|
||||||
|
} catch (Throwable t) {
|
||||||
|
handleThrowable(t);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean joinChat(UUID chatId) {
|
public boolean joinChat(UUID chatId) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -65,6 +65,7 @@ public interface GamePlay {
|
||||||
boolean updateDeck(UUID tableId, DeckCardLists deck);
|
boolean updateDeck(UUID tableId, DeckCardLists deck);
|
||||||
|
|
||||||
DraftPickView sendCardPick(UUID draftId, UUID cardId);
|
DraftPickView sendCardPick(UUID draftId, UUID cardId);
|
||||||
|
DraftPickView sendCardMark(UUID draftId, UUID cardId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* magenoxx:
|
* magenoxx:
|
||||||
|
|
|
@ -682,6 +682,21 @@ public class MageServerImpl implements MageServer {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendCardMark(final UUID draftId, final String sessionId, final UUID cardPick) throws MageException {
|
||||||
|
execute("sendCardMark", sessionId, new Action() {
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
Session session = SessionManager.getInstance().getSession(sessionId);
|
||||||
|
if (session != null) {
|
||||||
|
DraftManager.getInstance().sendCardMark(draftId, session.getUserId(), cardPick);
|
||||||
|
} else{
|
||||||
|
logger.error("Session not found sessionId: "+ sessionId + " draftId:" + draftId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void quitMatch(final UUID gameId, final String sessionId) throws MageException {
|
public void quitMatch(final UUID gameId, final String sessionId) throws MageException {
|
||||||
execute("quitMatch", sessionId, new Action() {
|
execute("quitMatch", sessionId, new Action() {
|
||||||
|
|
|
@ -60,12 +60,14 @@ public class DraftController {
|
||||||
private final UUID draftSessionId;
|
private final UUID draftSessionId;
|
||||||
private final Draft draft;
|
private final Draft draft;
|
||||||
private final UUID tableId;
|
private final UUID tableId;
|
||||||
|
private UUID markedCard;
|
||||||
|
|
||||||
public DraftController(Draft draft, ConcurrentHashMap<UUID, UUID> userPlayerMap, UUID tableId) {
|
public DraftController(Draft draft, ConcurrentHashMap<UUID, UUID> userPlayerMap, UUID tableId) {
|
||||||
draftSessionId = UUID.randomUUID();
|
draftSessionId = UUID.randomUUID();
|
||||||
this.userPlayerMap = userPlayerMap;
|
this.userPlayerMap = userPlayerMap;
|
||||||
this.draft = draft;
|
this.draft = draft;
|
||||||
this.tableId = tableId;
|
this.tableId = tableId;
|
||||||
|
this.markedCard = null;
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,6 +210,14 @@ public class DraftController {
|
||||||
|
|
||||||
public void timeout(UUID userId) {
|
public void timeout(UUID userId) {
|
||||||
if (userPlayerMap.containsKey(userId)) {
|
if (userPlayerMap.containsKey(userId)) {
|
||||||
|
DraftSession draftSession = draftSessions.get(userPlayerMap.get(userId));
|
||||||
|
if (draftSession != null) {
|
||||||
|
UUID cardId = draftSession.getMarkedCard();
|
||||||
|
if (cardId != null) {
|
||||||
|
sendCardPick(userId, cardId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
draft.autoPick(userPlayerMap.get(userId));
|
draft.autoPick(userPlayerMap.get(userId));
|
||||||
logger.debug("Draft pick timeout - autopick for player: " + userPlayerMap.get(userId));
|
logger.debug("Draft pick timeout - autopick for player: " + userPlayerMap.get(userId));
|
||||||
}
|
}
|
||||||
|
@ -218,7 +228,16 @@ public class DraftController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public DraftPickView sendCardPick(UUID userId, UUID cardId) {
|
public DraftPickView sendCardPick(UUID userId, UUID cardId) {
|
||||||
return draftSessions.get(userPlayerMap.get(userId)).sendCardPick(cardId);
|
DraftSession draftSession = draftSessions.get(userPlayerMap.get(userId));
|
||||||
|
if (draftSession != null) {
|
||||||
|
draftSession.setMarkedCard(null);
|
||||||
|
return draftSession.sendCardPick(cardId);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sendCardMark(UUID userId, UUID cardId) {
|
||||||
|
draftSessions.get(userPlayerMap.get(userId)).setMarkedCard(cardId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void updateDraft() throws MageException {
|
private synchronized void updateDraft() throws MageException {
|
||||||
|
|
|
@ -66,6 +66,10 @@ public class DraftManager {
|
||||||
return draftControllers.get(draftId).sendCardPick(userId, cardId);
|
return draftControllers.get(draftId).sendCardPick(userId, cardId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendCardMark(UUID draftId, UUID userId, UUID cardId) {
|
||||||
|
draftControllers.get(draftId).sendCardMark(userId, cardId);
|
||||||
|
}
|
||||||
|
|
||||||
public void removeSession(UUID userId) {
|
public void removeSession(UUID userId) {
|
||||||
for (DraftController controller: draftControllers.values()) {
|
for (DraftController controller: draftControllers.values()) {
|
||||||
controller.kill(userId);
|
controller.kill(userId);
|
||||||
|
|
|
@ -55,6 +55,7 @@ public class DraftSession {
|
||||||
protected UUID playerId;
|
protected UUID playerId;
|
||||||
protected Draft draft;
|
protected Draft draft;
|
||||||
protected boolean killed = false;
|
protected boolean killed = false;
|
||||||
|
protected UUID markedCard;
|
||||||
|
|
||||||
private ScheduledFuture<?> futureTimeout;
|
private ScheduledFuture<?> futureTimeout;
|
||||||
protected static ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor();
|
protected static ScheduledExecutorService timeoutExecutor = ThreadExecutor.getInstance().getTimeoutExecutor();
|
||||||
|
@ -63,6 +64,7 @@ public class DraftSession {
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
this.draft = draft;
|
this.draft = draft;
|
||||||
this.playerId = playerId;
|
this.playerId = playerId;
|
||||||
|
this.markedCard = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean init() {
|
public boolean init() {
|
||||||
|
@ -175,4 +177,12 @@ public class DraftSession {
|
||||||
return draft.getId();
|
return draft.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID getMarkedCard() {
|
||||||
|
return markedCard;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMarkedCard(UUID markedCard) {
|
||||||
|
this.markedCard = markedCard;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue